ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で列挙不可能な継承プロパティ名を取得する方法

JavaScript で列挙不可能な継承プロパティ名を取得する方法

Susan Sarandon
リリース: 2024-11-09 07:57:02
オリジナル
864 人が閲覧しました

How to Retrieve Non-Enumerable Inherited Property Names in JavaScript?

JavaScript でのオブジェクトの列挙不可能な継承プロパティ名の取得

JavaScript には、特定の要件に基づいてオブジェクトのプロパティにアクセスするためのさまざまなメソッドが用意されています。ただし、これらのメソッドはどれも、列挙不可能で所有されていないプロパティを取得することはできません。この記事では、そのようなプロパティを抽出する別のアプローチについて説明します。

解決策: getOwnPropertyNames とプロトタイプ チェーンの活用

Object.getOwnPropertyNames() は列挙不可能なプロパティを取得できるため、プロトタイプチェーントラバーサルと組み合わせることができます。次の JavaScript 関数 getAllProperties() は、オブジェクトのプロトタイプ チェーンを反復処理し、列挙不可能で所有されていないすべてのプロパティのリストをコンパイルします。

function getAllProperties(obj){</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">var allProps = []
  , curr = obj
do{
    var props = Object.getOwnPropertyNames(curr)
    props.forEach(function(prop){
        if (allProps.indexOf(prop) === -1)
            allProps.push(prop)
    })
}while(curr = Object.getPrototypeOf(curr))
return allProps
ログイン後にコピー

}

使用例

getAllProperties() 関数の機能をデモンストレーションするには、次の配列を考えてみましょうobject:

console.log(getAllProperties([1,2,3]));
ログイン後にコピー

出力:

[ 'length' ]
ログイン後にコピー

出力には、Array.prototype チェーンに属する非列挙プロパティ 'length' がリストされます。

以上がJavaScript で列挙不可能な継承プロパティ名を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート