(我是JavaScript的新手)如果所有对象都从原型继承了它们的属性,并且默认对象是Object,为什么以下脚本在两种情况下都返回undefined(我期待' Object& #39;?)
obj1 = {}; //empty object
obj2 = new Object();
console.log(obj1.prototype);
console.log(obj2.prototype);
请原谅我这是一个愚蠢的问题!
答案 0 :(得分:4)
.prototype
不是活动对象的属性,因此它不存在,因此报告undefined
。 .prototype
属性位于构造函数上,在本例中为Object.prototype
。对于现代浏览器中的给定对象,您可以使用以下命令获取活动原型:
var obj1 = {};
var p = Object.getPrototypeOf(obj1);
获取原型的非标准且现已弃用的方式是:
var obj1 = {};
var p = obj1.__proto__;
答案 1 :(得分:1)
在JavaScript的原型继承中,您有构造函数和实例。
构造函数(例如Object
)是您找到.prototype
链的地方
但在实例中,原型链并不是真正可以访问的。