¿Hay alguna forma de obtener todos los métodos (privados, privilegiados o públicos) de un objeto javascript desde dentro? Aquí está el objeto de muestra:Reflexión de Javascript
var Test = function() {
// private methods
function testOne() {}
function testTwo() {}
function testThree() {}
// public methods
function getMethods() {
for (i in this) {
alert(i); // shows getMethods, but not private methods
}
}
return { getMethods : getMethods }
}();
// should return ['testOne', 'testTwo', 'testThree', 'getMethods']
Test.getMethods();
El problema actual es el código en getMethods()
, el ejemplo simplificado devolverá sólo los métodos públicos, pero no a los privados.
edit: mi código de prueba puede (o no) ser demasiado complicado para lo que espero obtener. dado el siguiente:
function myFunction() {
var test1 = 1;
var test2 = 2;
var test3 = 3;
}
hay una manera de averiguar qué existen las variables en myFunction()
desde dentro myFunction()
. el pseudocódigo se vería así:
function myFunction() {
var test1 = 1;
var test2 = 2;
var test3 = 3;
alert(current.properties); // would be nice to get ['test1', 'test2', 'test3']
}
ya, eso es lo que temía. supongo que las opciones son la estructura que publicaste (ugh messsy), o simplemente haciendo que los métodos que quieres estén disponibles sean "públicos". oh bien :) – Owen