【发布时间】:2015-05-30 19:51:14
【问题描述】:
我在网上发现这篇文章让我很困惑。
http://jonathancreamer.com/object-literals-and-prototypes-in-javascript/
当我运行以下代码时
case2:
Pizza.prototype = {
divvyUp: function () {
return this.type + " pizza which has " + this.slices +" slices";
}
};
Versus case1:
Pizza.prototype.divvyUp = function () {
return this.type + " pizza which has " + this.slices +" slices";
};
难题在于,尽管 case1: 中的 Pizza.prototype.constructor 是构造函数,而 case2: 中的 Pizza.prototype.constrcutor 是 object() 函数,而 case2: 解耦了继承链。但是为什么当我执行 sausagePizza.divvyUp() 对于这两种情况我得到相同的结果。但是,当 case2: 解耦继承链并且不再引用 Pizza() 构造函数时,为什么我会得到类似于 case1 的 case2 的结果
【问题讨论】:
-
隐式添加到原型对象的
.constructor属性与继承链无关。这只是一个属性without any significance
标签: javascript