0
var google = {  
    makeBeer : function(arg1,arg2){     
         alert([this instanceof google, arg1, arg2]);        
    }    
}

google.makeBeer('water','soda');

上記はチェック時に警告しませんthis instanceof googleが、これを行うと同じコードが機能します。

var google = {  
    makeBeer : function(arg1,arg2){     
         alert([this instanceof Object, arg1, arg2]);        
    }    
}

google.makeBeer('water','soda');

参照「this」はオブジェクトのインスタンスですが、Google Object. 私の場合、インスタンスがその特定のオブジェクトであることを確認するにはどうすればよいですか。

同じ質問に更新します。

var newWay = {}
google.makeBeer.call(newWay, 'pepsi', 'coke');

上記の場合、関数 makeBeer に newWay オブジェクトを渡しています。ここでその newWay オブジェクトを知るにはどうすればよいですか。

4

2 に答える 2

1

変数「google」によって参照されるオブジェクトは、実際には単なるオブジェクトです。識別子「google」は単なる変数名です。instanceof演算子は、オブジェクトが参照されている変数ではなく、オブジェクトがどこから来たかを示します。

于 2013-03-13T15:22:15.033 に答える
1

instanceof の MDN エントリから:

instanceof 演算子は、オブジェクトのプロトタイプ チェーンにコンストラクターのプロトタイプ プロパティがあるかどうかをテストします。

したがって、一意のコンストラクターを使用してオブジェクトを作成しない限り、次のようになります。

var newWay = new Way(); // assuming you have defined an object Way

where newWay instanceof Way === true、 instanceof を使用して、それがオブジェクトであること以外のことを伝えることはできません。

于 2013-03-13T15:27:55.593 に答える