空对象原型未定义
2014-11-18
899
(我是 JavaScript 新手)如果所有对象都从原型继承其属性,并且默认对象是 Object,那么为什么以下脚本在两种情况下都会返回 undefined(我期望的是“Object”)?
obj1 = {}; //empty object
obj2 = new Object();
console.log(obj1.prototype);
console.log(obj2.prototype);
如果这是一个愚蠢的问题,请原谅我!
2个回答
.prototype
不是活动对象的属性,因此不存在,因此会报告
undefined
。
.prototype
属性位于构造函数上,在本例中为
Object.prototype
。对于现代浏览器中的给定对象,您可以使用以下命令获取活动原型:
var obj1 = {};
var p = Object.getPrototypeOf(obj1);
获取原型的非标准且现已弃用的方法是:
var obj1 = {};
var p = obj1.__proto__;
jfriend00
2014-11-18
在 JavaScript 的原型继承中,您有
构造函数
和
实例
。
构造函数(例如
Object
)是您可以找到
.prototype
链的地方。
但在实例上,原型链实际上不可访问。
Scott Rippey
2014-11-18