ネイティブV8機能。それは速いです、それは常に正しいです。これはES5の一部です。
オブジェクトが配列コンストラクターで作成されたかどうかを確認します。
アンダースコアからの方法。これが彼らのソースから取られたスニペットです
var toString = Object.prototype.toString,
nativeIsArray = Array.isArray;
_.isArray = nativeIsArray || function(obj) {
return toString.call(obj) === '[object Array]';
};
このメソッドはオブジェクトを受け取り、そのオブジェクトのObject.prototype.toStringメソッドを呼び出します。これは常に[object Array]配列に対して返されます。
私の個人的な経験でtoStringは、この方法を尋ねることが最も効果的であると思いますが、それはES5コードほど短くも読みやすくinstanceof Arrayも速くもありませんが、それはArray.isArrayES5コードであり、移植性のために使用することを避ける傾向があります。
個人的にunderscoreは、一般的なユーティリティメソッドを含むライブラリであるを使用することをお勧めします。それはあなたのコードを乾かす多くの便利な関数を持っています。
utilライブラリ-require('util').isArray(arr)nodejs.org/api/util.html#util_util_isarray_object