有沒有辦法從內部獲取JavaScript對象的所有方法(私有,特權或公共)?這裏的樣本對象: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();
目前的問題是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']
}
上面的語法相當於:VAR測試=新的對象(); Test.getMethods(); – Owen 2008-11-08 23:33:49