我有一个像这样的 dojo 定义函数
define([
// some param
]),function(foo, bar, baz, fooz, ...){
return{
// some custom code
}
}
我想动态访问我的函数 args(foo, bar, ...)
我知道我可以将它包装到 var
foo : foo
并使用
访问它this[objectToCall].methodToRun();
在这个例子中,调用应该是
this.run('foo');
function run(objectToCall){ // foo
this[objectToCall].methodToRun(); // refer to foo
}
有没有办法在不将其包装到 var 中的情况下实现此目的?
提前致谢
编辑:
再进一步一点
我可以使用 arguments
关键字。
function(foo, bar, baz, fooz, ...){
var functionArguments = arguments;
return{
// some custom code
}
}
但我无法使用 functionArguments['foo']
访问 foo 对象;
最佳答案
您似乎正在尝试使用“methodToRun”函数,就像接口(interface)定义一样。
当您说想要动态选择正确的对象时,听起来像是您将该对象存储在代码中某处的某个 var 中(例如:var selectedObject = foo;)
由于是动态的,您应该能够使用以下方式调用对象上的方法 selectedObject.methodToRun();
(但现在您只能提供实际上实现“methodToRun”的对象,否则您将收到“对象不支持此方法”错误。)
关于javascript - 在 Javascript 中动态访问函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10698070/