Приносим извинения, что переместил его отсюда было какое-то замешательство и спасибо Серый для ответа на это, чтобы осознать ошибку . Тема была перенесена в Javascript: Behavior of {} для дальнейшего обсуждения.Шаблон Singleton с {}?
Singleton Pattern с '{}'. Вот как это:
var A = {
B : 0
};
// A is an object?
document.write("A is an " + typeof A);
Позволяет попытаться клонировать объект A
var objectOfA = new Object(A);
objectOfA.B = 1;
//Such operation is not allowed!
//var objectOfA = new A();
var referenceOfA = A;
referenceOfA.B = -1;
document.write("A.B: " + A.B);
document.write("<br/>");
выше referenceOfA.B
содержит ссылку на объект A
, поэтому изменение значения referenceOfA.B
, безусловно, отражает в A.B
.
document.write("referenceOfA.B: " + referenceOfA.B);
document.write("<br/>");
Если успешно клонированы затем objectOfA
должен держать ценность 1
document.write("objectOfA.B: " + objectOfA.B);
document.write("<br/>");
Ниже приведены результаты:
А объект
АВ: -1
referenceOfA.B: -1
objectOfA.B: -1
Upto здесь все ясно, но объект должен принять instanceof
на него. Но здесь, если вы попытаетесь использовать instanceof
с A
, у вас есть исключение.
Почему?
понял, что я совершенно неправильно понял. – karim79
Какова точка «singleton pattern» на языке с глобальными переменными? Я прошу по-настоящему, почему бы просто не сказать «var B = 0»? – Victor
Глобальные переменные можно контролировать с помощью замыканий. Очень мощная функция. Вот отличная статья о концепции закрытия: http://www.jibbering.com/faq/faq_notes/closures.html –