【问题标题】:The relationship between __proto__ of an instance and the prototype of its constructor in javascriptjavascript中实例的__proto__与其构造函数原型的关系
【发布时间】:2012-01-31 14:58:16
【问题描述】:

我为我编写了代码来找出实例的 __proto__ 与其在 javascript 中构造函数的原型之间的关系:

// 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__ 是否等于中文时,我得到了false

console.log( "__proto__ of me is chinese? " + chinese == me.__proto__ ); // logs false

为什么它们不一样?

【问题讨论】:

    标签: javascript prototype


    【解决方案1】:

    因为+ 的优先级高于==,所以你真的在做...

    ( "__proto__ of me is chinese? " + chinese ) == me.__proto__
    

    你需要做的是……

    "__proto__ of me is chinese? " + ( chinese == me.__proto__ )
    

    或在console 调用中使用, 来传递单独的参数...

    "__proto__ of me is chinese? ", chinese == me.__proto__ 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2013-07-18
      • 1970-01-01
      • 2020-07-11
      • 2010-11-29
      相关资源
      最近更新 更多