我编写了代码来为我找出实例的 __proto__ 与其构造函数的原型(prototype)之间的关系:
// Constructor
var Guy = function( name ) {
this.name = name;
};
// Prototype
var chinese = {
region: "china",
myNameIs: function() {
return this.name;
}
};
Guy.prototype = chinese;
var he = new Guy( "Wang" );
var me = new Guy( "Do" );
当我测试 me.__proto__ 是否等于 chinese 时,我得到了 false
:
console.log( "__proto__ of me is chinese? " + chinese == me.__proto__ ); // logs false
为什么它们不是同一件事?
最佳答案
因为 +
的优先级高于 ==
,所以你真的在做...
( "__proto__ of me is chinese? " + chinese ) == me.__proto__
你需要做的是......
"__proto__ of me is chinese? " + ( chinese == me.__proto__ )
或在控制台
调用中使用,
来传递单独的参数...
"__proto__ of me is chinese? ", chinese == me.__proto__
关于javascript - javascript中实例的__proto__与其构造函数的原型(prototype)之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081699/