var a = {};
a.__defineGetter__('test',function() {return 5;});
var i ="test";
Run Code Online (Sandbox Code Playgroud)
除此之外还有其他方法可以执行getter a[i](同时使用var i它)
编辑:
我在问var i这个问题.我会更好地解释真正的问题.
我在命名空间对象上使用getter仅在需要时加载模块.
MyNameSpace.__defineGetter__('db',function(){MyNameSpace.loadModule('db');});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我试图加载所有模块:
for (var i in MyNameSpace){
MyNameSpace[i];
}
Run Code Online (Sandbox Code Playgroud)
我在我的代码上使用了Google闭包编译器,它将上面的循环减少到:
for(var i in MyNameSpace);
Run Code Online (Sandbox Code Playgroud)
没有模块加载.我试图"欺骗"gcc让我加载模块.