ホームページ  >  記事  >  ウェブフロントエンド  >  JS オブジェクトに特定のattribute_javascriptスキルがあるかどうかを判断する2つの方法

JS オブジェクトに特定のattribute_javascriptスキルがあるかどうかを判断する2つの方法

WBOY
WBOYオリジナル
2016-05-16 17:11:061131ブラウズ

2 つの方法ですが、少し異なります

1、演算子内

コードをコピー コードは次のとおりです。

var obj = {name:'jack' };
alert('name' in obj) // --> true
alert('toString' in obj);
プロトタイプ チェーン上の name と toString の両方が検出され、true が返されることがわかります。
2、hasOwnProperty メソッド

コードをコピー コードは次のとおりです。var obj = {name:'jack' };
obj.hasOwnProperty('name') // --> true
obj.hasOwnProperty('toString'); // false


プロトタイプ チェーンで継承されたプロパティは hasOwnProperty によって検出できず、false を返します。

in はプロトタイプチェーンのプロパティを検出できますが、for in は通常は検出できないことに注意してください。

もちろん、プロトタイプを書き直した後、for in は IE9/Firefox/Safari/Chrome/Opera で表示されます。参照:

for の欠陥

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。