我正在使用以下测试代码:
function Test() {
}
Test.prototype.MyMethod = {
a: function() {
},
b: function() {
}
}要运行它,我只需执行以下操作:
var test = new Test();
console.debug(test);在firebug控制台中,我展开打印的对象并查看__proto__内部
在这里可以找到一个看似无穷无尽的构造器->原型链:
+MyMethod
-constructor
-prototype
+MyMethod
-constructor
-prototype
+MyMethod
-constructor诸若此类。我是不是做错了什么?为什么原型链看起来没完没了?
发布于 2011-01-20 05:16:33
prototype有一个名为constructor的属性,它引用拥有原型的函数。
这个循环是设计出来的。
发布于 2011-01-20 05:17:36
原型的构造函数引用了它自己,所以当你“展开”它时,你只是一遍又一遍地打开相同的结构。它实际上不是'infinite.‘’。
https://stackoverflow.com/questions/4740849
复制相似问题