就在我认为我理解 js 对象时,他们向我抛出了一些新的东西。
在这段代码中(小提琴:http: //jsfiddle.net/x8Eng/1/)
var impl = function () {
var P = function () {};
P.prototype = {};
return P;
},
P = impl();
p = new P();
console.log(p.constructor === P);
当我添加原型时,检查构造函数是否相等返回 false,但如果删除添加原型的行,则返回 true。P.prototype.prop = 'prop'
通过保留相等性来扩展原型。p instanceof P
总是返回真。
有人可以解释为什么会发生这种情况的复杂性吗?