,我很抱歉,把它从这里移开,因为有一些混乱,感谢格雷回答这个问题,以意识到错误。该主题已转移到Javascript: Behavior of {}进行进一步讨论。
带有{}的单例模式。如下所示:
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/>");这里是结果:
A是一个对象
A.B:-1
参考资料B:-1
对象OfA.B:-1
到目前为止,一切都很清楚,但是对象应该使用instanceof。但是在这里,如果您尝试将instanceof与A结合使用,则会出现异常。
为什么?
发布于 2009-10-23 10:47:03
我没有例外:
alert(A instanceof Object); // true在Chrome,IE8和火狐上进行了测试。
https://stackoverflow.com/questions/1612631
复制相似问题