javascript の Array.length と arrayinstance.length の違い 質問する

javascript の Array.length と arrayinstance.length の違い 質問する

プロパティ(つまり、関数オブジェクトでArray.length名前が付けられたプロパティ)と(つまり、配列オブジェクトのインスタンスで名前が付けられたプロパティ)について少し混乱しています。lengthArrayarray_instance.lengthlength

ここに画像の説明を入力してください

では、この 2 つのプロパティの違いは何でしょうかlength。また、いつ使用すべきか、使用すべきでないかを教えてください。

編集1:

lengthオブジェクトにもプロパティがありますArray.prototype。とても混乱しています。

ここに画像の説明を入力してください

編集2

より明確にイメージするために、length私が見つけたさまざまな特性をここに示します。

ここに画像の説明を入力してください

編集3

これはコメント欄で私が尋ねたフォローアップの質問の1つですが、この質問はlengthプロパティを完全に理解するために重要だと思うので、メインセクションにコピーして貼り付けました。

フォローアップの質問:

Array.prototype.hasOwnProperty('length')Array_instance.hasOwnProperty('length')を返す場合、 に 1 つ、オブジェクトに1 つ、合計 2 つのプロパティtrueがあり、が を覆い隠していることを意味しますか?lengtharray_instanceArray.prototypearray_instance.lengthArray.prototype.length

ベストアンサー1

関数には.length、期待する引数の数に対応するプロパティがあります。例:

const unary = (a) => {

}

const binary = (a, b) => {

}

console.log(unary.length);
console.log(binary.length);

したがって、Array コンストラクターには 1 つのパラメーター (つまり、配列のサイズ) が渡されることが想定されているため、Array コンストラクターの長さは 1 になります。

配列オブジェクトには.length、同じ名前であること以外は無関係なプロパティもあります。このプロパティは、配列の現在のサイズを示します。

おすすめ記事