Array.prototype
自体は空の配列を返します。すべての関数はどこから来ますか?Array.prototype関数はどこから来たのですか?
なぜ私はArray.prototype.sort
のような関数を呼び出すことができますが、Array.prototypeでもオブジェクトではありませんか?
Array.prototype.__proto__
はオブジェクトです。
Function.prototype
の場合も同じ質問があります。
Array.prototype
自体は空の配列を返します。すべての関数はどこから来ますか?Array.prototype関数はどこから来たのですか?
なぜ私はArray.prototype.sort
のような関数を呼び出すことができますが、Array.prototypeでもオブジェクトではありませんか?
Array.prototype.__proto__
はオブジェクトです。
Function.prototype
の場合も同じ質問があります。
さらに
Array.prototype
はオブジェクトではありませんか?
どのように考えましたか?これはオブジェクトです:
このように、他のすべてのオブジェクトと同様のプロパティを持つことができます。そして、それはない:これは、他のすべてのアレイに対して同じである
Array.prototype.hasOwnProperty("sort") // true
Array.prototype.sort // function(compare) { … }
、あなたはすべてのjavascriptオブジェクトのようにそれらの上にカスタムプロパティを作成することができます
var foo = [];
foo.bar = "baz";
typeof foo.bar // "string"
Array.isArray(foo) // true
ご意見ありがとうございます。 はい 'typeof Array.prototype'は" object "を返しますが、Array.isArray(Array.prototype)はtrueを返します。これは配列ネイティブであることを意味しますか?どのように関数を配列から検索することができますか? –
すべての配列は、特別な振る舞いをする 'length'プロパティ(場合によってはいくつかのエンジンの最適化)を持つオブジェクトですが、それ以外の点では標準のjsオブジェクトです。 – Bergi
私は参照してください。なぜ 'Array.prototype'に配列や関数の代わりに単純なキー/値オブジェクトが含まれていないのですか?キー/値のハッシュテーブルとして配列を使用すると良い練習ではないと聞きます。 –
Array.prototype
はオブジェクトであり、あなたが使用されるほとんどの機能配列はそれから来る。したがって、プロトタイプです。
クロムデベールバーを開き、下の画像のようにチェックしてください。
+1は 'console.debug'(残念ながら標準ではありません)です。補足: 'Array.prototype.sort'は[console.log]に表示されません。[enumerable property](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/)ではないからです。オブジェクト/ defineProperty#の説明)。 'Array.prototype.propertyIsEnumerable(" sort ")'でチェックしてください。 'console.log'実装は[' Object.keys'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)を使用しています。 docs、* Object.keys()メソッドは、与えられたオブジェクト自身の列挙可能なプロパティの配列を返します。* – mrlew
xdazz、あなたのコメントをありがとうございます。はい、私はクロムコンソールでチェックし、私は質問があります。 Array.prototypeを呼び出すと、Array [0]または[]と表示されます。 'Array.isArray(Array。プロトタイプ) 'が真を返します。 Arrayは組み込みオブジェクトの1つで、オブジェクトになります。 –
「Array.prototype」はなぜオブジェクトではないと思いますか?配列(と関数)は両方ともJSのオブジェクトです。 –