0

私が読んだすべての本/資料では、オブジェクトのすべてのインスタンスが継承し、オブジェクトが作成されたプロトタイプのメソッドにアクセスできるという普遍的で絶対的な用語について説明しています。ほとんどの場合、これは一般的に正しいようです。しかし、これは私が読んだほど普遍的ではないようです。簡単な例:

typeofnumberであるオブジェクトのlengthプロパティは未定義です。

例えば:

x = 5;
typeof x;
=> returns number
number.length
=> returns undefined

数字に長さがあるのはあまり意味がないことを理解しています(数字の桁数を反映できると思いますが)、私が気になるのは、準備ができているすべてがこの絶対的な原則について話しているということです継承の。そして、すべてが組み込みオブジェクトから派生し、組み込みのNumberオブジェクトでさえlengthプロパティを持っているので、上記のxの例でそのプロパティにアクセスできないのはなぜですか?

4

1 に答える 1

0

シンボルは、プロトタイプオブジェクトではなく、Number数値コンストラクターを参照します。すべての関数には「.length」プロパティがあり、関数宣言の正式なパラメーターの数を示します。あなたNumberが言うように、ビルトインは確かにオブジェクトですが、特にそれは関数(のインスタンスFunction)です。

の「長さ」プロパティはNumber.prototypeありません。そのため、インスタンスにはそのようなプロパティがありません。(もちろん、必要に応じて、任意のインスタンスまたはプロトタイプに1つ追加できます。)

于 2012-05-28T21:40:05.100 に答える