空对象原型未定义

时间:2014-11-18 04:44:00

标签: javascript

(我是JavaScript的新手)如果所有对象都从原型继承了它们的属性,并且默认对象是Object,为什么以下脚本在两种情况下都返回undefined(我期待' Object& #39;?)

obj1 = {}; //empty object
obj2 = new Object();
console.log(obj1.prototype);
console.log(obj2.prototype);

请原谅我这是一个愚蠢的问题!

2 个答案:

答案 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链的地方 但在实例中,原型链并不是真正可以访问的。