【发布时间】:2011-10-28 19:23:25
【问题描述】:
对于 JS 大师和忍者来说可能是个愚蠢的问题,但这里是:
我对对象的原型对象/属性的理解是,它是对象未来实例的蓝图。鉴于此,新创建的对象实例不应该与创建它的构造函数对象相同吗?
var x = new Object();
console.log(x === Object.prototype); // returns false. why??
* 更新 *
所以理解这将返回 false 因为它们引用了不同的东西,我仍然发现 new Object() 和 Object.prototype 包含不同数量的属性。所以要细化我的问题:如何正确检查原型对象中的属性数量;我如何遍历它们?
我对此感到困惑的原因是,如果我创建一个简单的构造函数:
function Circle(){
this.tail = "yes, has tail";
}
并想获取它拥有的属性数量,例如:
console.log(Object.getOwnPropertyNames(Circle.prototype));
// returns "constructor", I expected it to return "tail"
【问题讨论】:
标签: javascript object constructor prototype-programming