Javascript 带有{}的单态模式?

Javascript 带有{}的单态模式?,javascript,unobtrusive-javascript,Javascript,Unobtrusive Javascript,我很抱歉把它从这里移走 有一些混乱和感谢 灰色为回答此问题实现了 错误该主题已移至 进一步讨论 带有“{}”的单例模式。这是怎么回事: 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 obj

我很抱歉把它从这里移走 有一些混乱和感谢 灰色为回答此问题实现了 错误该主题已移至 进一步讨论

带有“{}”的单例模式。这是怎么回事:

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/>");
如果成功克隆,则
objectOfA
应保留值
1

document.write("objectOfA.B: " + objectOfA.B);
document.write("<br/>");
document.write(“objectOfA.B:+objectOfA.B”);
文件。写(“
”);
以下是结果:

A是一个物体

A.B:-1

参考FA.B:-1

A.B:-1

到目前为止,一切都很清楚,但对象应该具有
instanceof
。但在这里,如果您尝试将
instanceof
A
一起使用,则会出现异常


为什么?

我没有例外:

alert(A instanceof Object); // true

在Chrome、IE8和Firefox中测试。

意识到我完全误解了。在一种带有全局变量的语言中,“单例模式”有什么意义?我问的是真实的,为什么不说
var B=0
?全局变量可以用闭包控制。一个非常强大的功能。这里有一篇关于闭包概念的好文章:我在推a的
referenceOfA实例,在那里抛出了异常<但是,code>referenceOfA instanceof Object
返回true。
alert(A instanceof Object); // true