Есть ли способ получить все методы (частные, привилегированные или общедоступные) из объекта javascript изнутри? Вот пример объекта:Javascript Reflection
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();
Текущий номер является кодом в getMethods()
, упрощенный пример возвратит только открытые методы, но не частные.
Редактировать: мой тестовый код может (или не может) быть чрезмерным, что я надеюсь получить. учитывая следующее:
function myFunction() {
var test1 = 1;
var test2 = 2;
var test3 = 3;
}
есть способ, чтобы выяснить, какие существуют переменные в myFunction()
внутри myFunction()
. псевдокод будет выглядеть так:
function myFunction() {
var test1 = 1;
var test2 = 2;
var test3 = 3;
alert(current.properties); // would be nice to get ['test1', 'test2', 'test3']
}
выше синтаксис эквивалентен: вар Test = новый Object(); Test.getMethods(); – Owen 2008-11-08 23:33:49