Связь между __proto__ экземпляра и прототипом его конструктора в javascript - PullRequest
2 голосов
/ 31 января 2012

я написал код, чтобы выяснить связь между __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" );

мне дали false, так как я проверял, правильно ли я.__proto__ невероятно похож на китайский:

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

Почему они не одно и то же?

1 Ответ

3 голосов
/ 31 января 2012

Потому что + имеет более высокий приоритет, чем ==, поэтому вы действительно делаете ...

( "__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__ 
...