オブジェクトは、プロパティやメソッドを持っているかどうかを検出する方法

はじめに:オブジェクトは2例に分け性質を持っているかどうかを検出します。

チェーンが使用されているプロトタイプから継承する性質を検出するために1:キーワードに、

継承されたプロパティが検出されない場合2.使用:Object.hasOwnProperty()メソッドを、

 

最初のステップ:使用キーワードで

VAR OBJ = {}; 

// obj.nameが指定されていない、およびプロトタイプチェーンが見つからない、偽に戻り 
、「名」 OBJ; // falseに

// OBJ toStringメソッドは、宣言が、プロトタイプチェーン内に見つかりません真に戻る 
"のtoString"  OBJ; // trueに

// objにプロパティとメソッドを追加 
= "Lilei"をobj.name ; 
obj.sayHi = 関数(){にconsole.log( "こんにちは。" )};
 " "名前 OBJ; // trueに、 
" sayHi」 OBJ; // trueにします。

 

ステップ2:使用Object.prototype.hasOwnProperty()メソッド

VAR OBJ = {}; 

// obj.nameが指定されていない、それは偽に戻り 
obj.hasOwnProperty(「名前」); // falseに

// OBJは、鎖中に原型にもかかわらず、toStringメソッドを宣言していないが、OBJ上に定義されていませんしたがって、それは偽に戻り 
obj.hasOwnProperty( "のtoString"); // falseに

// OBJプロパティとメソッドを追加する 
obj.name = "Lilei" ; 
obj.sayHi = 関数(){にconsole.log(「こんにちは。 " )}; 

obj.hasOwnProperty( "名前"); // trueに 
obj.hasOwnProperty(" sayHi「); // trueに

 

おすすめ

転載: www.cnblogs.com/aisowe/p/11641032.html