【发布时间】:2015-04-30 21:16:44
【问题描述】:
如果我有以下代码,为什么它返回一个错误,说 Cannot set property 'second_prop' of undefined 。我认为您可以扩展原型属性并为对象原型添加更多变量和方法。既然两个console语句都返回'Object'和true,那为什么会返回undefined的错误。我的想法是,如果“obj”是 Object 类型的对象,那么我应该能够做 temp.prototype.newproperty?因此,对象将具有“新属性”。但我显然错了,所以我在这里遗漏了一些东西。 更重要的是,当 obj 已经是对象文字时,为什么我需要执行 Object.create() ?不是已经是对象了吗?我只是在看一些例子并试图理解这一点
var obj = {
first_property: 'first property'
}
console.log(typeof obj);
console.log(obj instanceof Object);
var temp = Object.create(obj);
temp.prototype.second_prop = 'second property'
输出
//object
//true
//Uncaught TypeError: Cannot set property 'second_prop' of undefined
那么,为什么我不能做 temp.prototype 或 obj.prototype?
【问题讨论】:
-
只有构造函数有
.prototype属性。你到底想做什么? -
我今天早些时候回答了一个类似的问题,希望对您有所帮助:stackoverflow.com/a/29977006/4556448
-
这能回答你的问题吗? Extending object literal
标签: javascript html object web object-construction