Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的调用动态函数_Javascript - Fatal编程技术网

Javascript中的调用动态函数

Javascript中的调用动态函数,javascript,Javascript,我的代码: var MyObj = { myFnc = function(a, b) { console.log('A: '+a+', B: '+b); } } var list = new Array('myFnc', new Array('var1', 'var2')); MyObj[list[0]].call(list[1]); 但是不起作用,有人可以帮我吗?您需要使用.apply而不是.call并为apply函数提供上下文: var MyObj = {

我的代码:

var MyObj = {
    myFnc = function(a, b) {
       console.log('A: '+a+', B: '+b);
    }
}

var list = new Array('myFnc', new Array('var1', 'var2'));
MyObj[list[0]].call(list[1]);
但是不起作用,有人可以帮我吗?

您需要使用.apply而不是.call并为apply函数提供上下文:

var MyObj = {
    myFnc : function(a, b) {
       console.log('A: '+a+', B: '+b);
    }
};

var list = new Array('myFnc', new Array('var1', 'var2'));
MyObj[list[0]].apply(window, list[1]);
.apply调用函数并使用指定的数组作为参数

此外,在定义myFnc时,请使用冒号而不是等号。

我想您应该使用。不要忘了第一个参数,它是这个上下文中的第一个参数


您希望代码做什么?您是否在控制台中看到错误?始终检查错误控制台。构造对象时出现语法错误。分配函数时,您需要的是:,而不是=。有什么不起作用?这是一个错误吗?错误是什么?
var MyObj = {
    myFnc: function(a, b) {
       console.log('A: '+a+', B: '+b);
    };
}

var list = ['myFnc', ['var1', 'var2']];
MyObj[list[0]].apply(MyObj, list[1]);