11

すべての配列関数を配列オブジェクトでラップしたいのですが、コンソールで

>>> Array.prototype
[]
>>> [].prototype
undefined

しかしArray.prototype、コンソールに入力すると、すべての関数がオートコンプリートに表示されます。どうすればそれらの関数を取得できますか? 彼らはどこに隠されていますか?

4

3 に答える 3

22

ということですか:

var arrObj = Object.getOwnPropertyNames(Array.prototype);
for( var funcKey in arrObj ) {
   console.log(arrObj[funcKey]);
}
于 2012-09-12T09:05:57.917 に答える
2

ECMAScript 6 (ECMAScript 2015) を使用すると、少し単純化できます。

for (let propName of Object.getOwnPropertyNames(Array.prototype)) {
   console.log(Array.prototype[propName]);
}
于 2016-07-26T04:10:25.603 に答える
-1
var proto = Array.prototype;

for (var key in proto) {
    if (proto.hasOwnProperty(key)) {
        console.log(key + ' : ' + proto[key]);
    }
}

デモ。

また、コンソールでそのプロパティを確認したい場合。

使用する:console.dir(Array.prototype);

</ p>

于 2012-09-12T09:03:54.070 に答える