ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で Object.prototype.toString を使用して array_javascript かどうかを判断するヒント

JavaScript で Object.prototype.toString を使用して array_javascript かどうかを判断するヒント

WBOY
WBOYオリジナル
2016-05-16 16:06:321213ブラウズ

Function.prototype.toString などの代わりに Object.prototype.toString を使用するのはなぜですか?これは、toString の解釈方法に関連しています。以下は ECMA の Object.prototype.toString の説明です:

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

Object.prototype.toString( )

toString メソッドが呼び出されると、次の手順が実行されます。
1. このオブジェクトの [[Class]] プロパティを取得します。
2. 3 つの文字列「[object」、Result(1)、および「]」を連結して文字列値を計算します。
3. 結果を返す(2)


プロセスは簡単に次のとおりです。 1. オブジェクトのクラス名 (オブジェクト タイプ) を取得します。 2. [オブジェクト、取得したクラス名]を結合してリターンします。
ECMA には配列について次のような説明があります:
コードをコピー コードは次のとおりです:

新しく構築されたオブジェクトの [[Class]] プロパティは「Array」に設定されます。

したがって、次のコードを使用して配列を検出します:
コードをコピー コードは次のとおりです:

function isArray(o) { return Object.prototype.toString.call(o) === '[オブジェクト配列]' }

この方法は、instanceof のクロスページ問題を解決するだけでなく、属性検出方法の問題も解決します。これは実に優れた解決策です。
さらに、このソリューションは、日付、関数、その他のタイプのオブジェクトを決定するために適用することもできます。

他にもいくつかの方法があります:
コードをコピー コードは次のとおりです:

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