2012-09-12 18 views
9

que quiero para envolver todas las funciones de matriz en objeto de matriz, pero en la consolaComo puedo iterar sobre las funciones Array.prototype

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

pero cuando escribo Array.prototype en la consola que mostrará todas las funciones en autocomple, ¿cómo puedo obtener esas funciones? ¿Dónde están escondidos?

Respuesta

16

Qué quiere decir:

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

Sí, exactamente lo que estaba buscando. Gracias. – jcubic

+0

de nada ... :) –

+0

¿Cuñas para IE8-? – David

0
var proto = Array.prototype; 

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

demo.

Y si desea comprobar su propiedad en la consola.

Uso: console.dir(Array.prototype);

+0

Este don' t trabajo. (en Google Chrome), como cuestiono, Array.prototype es una matriz vacía cuando se accede de esta manera. – jcubic

+0

@jcubic Debería funcionar en realidad, podría consultar la demostración. – xdazz

+0

No, es por eso que hago esta pregunta. 'console.dir (Array.prototype);' return array [0] con esas funciones, pero iterar sobre Array.prototype no funciona. – jcubic

1

El uso de ECMAScript 6 (ECMAScript 2015), puede simplificar un poco:

for (let propName of Object.getOwnPropertyNames(Array.prototype)) { 
    console.log(Array.prototype[propName]); 
} 
Cuestiones relacionadas