[英]access function arguments dynamically in Javascript
我有一个像这样的道场定义函数
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”函数。
当您说要动态选择正确的对象时,听起来好像您将对象存储在代码中的某个var中(例如:var selectedObject = foo;)。
动态的,您应该能够使用selectedObject.methodToRun()在对象上调用方法。
(但是,现在只能由您提供实际上实现了“ methodToRun”的对象,否则您将收到“对象不支持此方法”错误。)
找到了解决方案:
function(method){
var len = functionArguments.length;
for(var i = 0; i < len; i ++){
if(typeof functionArguments[i] === "object")
if(functionArguments[i].name == method)
functionArguments[i].test();
}
并在对象的定义中添加了名称参数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.