2012-09-12 17 views
9

chcę owinąć wszystkie funkcje tablicy w obiekcie tablicy, ale w konsoliJak mogę iteracyjne nad funkcjami Array.prototype

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

ale kiedy wpisuję w konsoli Array.prototype to pokazać wszystkie funkcje w autocomple, jak mogę uzyskać te funkcje? Gdzie są ukryte?

Odpowiedz

16

masz na myśli:

var arrObj = Object.getOwnPropertyNames(Array.prototype); 
for(var funcKey in arrObj) { 
    console.log(arrObj[funcKey]); 
} 
+0

Tak, dokładnie to, czego szukałem. Dzięki. – jcubic

+0

Nie ma za co ... :) –

+0

Jakieś podkładki do IE8-? – David

0
var proto = Array.prototype; 

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

demo.

A jeśli chcesz sprawdzić swoją nieruchomość w konsoli.

Zastosowanie: console.dir(Array.prototype);

+0

Ten don” t działa. (w Google chrome), jak podałam, Array.prototype jest pustą tablicą, gdy uzyskuję do niej dostęp w ten sposób. – jcubic

+0

@jcubic Powinno działać właściwie, możesz sprawdzić wersję demo. – xdazz

+0

Nie, dlatego właśnie zadaję to pytanie. 'console.dir (Array.prototype);' zwraca tablicę [0] z tymi funkcjami, ale iterowanie przez prototypowy Array.prototype nie działa. – jcubic

1

Korzystanie ECMAScript 6 (ECMAScript 2015), można uprościć bitowe:

for (let propName of Object.getOwnPropertyNames(Array.prototype)) { 
    console.log(Array.prototype[propName]); 
} 
Powiązane problemy