この2つの違いは何でしょうか?
array.size()
つまり、 は関数で、 はプロパティであることがわかりますarray.length
。 どちらか一方を使用するユースケースはありますか? どちらか一方の方が効率的ですか? (.length
メソッド呼び出しではなくプロパティなので、大幅に高速になると思います) なぜ遅いオプションを使用するのでしょうか? どちらか一方と互換性のないブラウザーはありますか?
var x = [];
console.log(x.size());
console.log(x.length);
console.log(x.size()==x.length);
x =[1,2,3];
console.log(x.size());
console.log(x.length);
console.log(x.size()==x.length);
印刷されます:
0, 0, true
3, 3, true
ベストアンサー1
Array.size() は有効なメソッドではありません
常に長さプロパティを使用する
これはネイティブ配列メソッドではないため、配列プロトタイプにサイズ メソッドを追加するライブラリまたはスクリプトがあります。これは通常、カスタム ゲッターのサポートを追加するために行われます。これを使用する例としては、配列のメモリ内のサイズを取得する場合が挙げられます (この名前に役立つと思われる唯一のことはこれです)。
残念ながら、Underscore.js は、size
実際にはオブジェクトまたは配列の長さを返すメソッドを定義します。残念ながら、関数の長さプロパティは関数が宣言する名前付き引数の数として定義されているため、代替手段を使用する必要があり、size が選択されました (count の方が適切な選択でした)。