调用普通函数和数组Javascript中的函数
我的代码:调用普通函数和数组Javascript中的函数,javascript,Javascript,我的代码: var myc = { utils: { my_fnc: function(a) { console.log('This is: '+a); } }, run: function(type, name, args) { if (type == 1) { //call function in myc.utils return myc.utils[name].apply(myc.ut
var myc = {
utils: {
my_fnc: function(a) {
console.log('This is: '+a);
}
},
run: function(type, name, args) {
if (type == 1) {
//call function in myc.utils
return myc.utils[name].apply(myc.utils, args);
} else {
//call global function
return name.apply(null, args);
}
}
};
function myFnc(a) {
console.log('This is: '+a);
}
例1:
myc.run(1, my_fnc, new Array('a value'));
它在工作
例2:
myc.run(2, myFnc, new Array('a value'));
它不工作,这是错误:未捕获类型错误:未定义不是函数
有人能帮我吗?是的,我想输入1,我调用全局函数myFnc,我如何才能做到这一点?您确定第一个
run
调用按照编写的方式工作吗?调用尝试使用不存在的my_fnc
变量。函数应该是字符串。@用户,很奇怪,您传递的是函数而不是它的名称,所以它应该可以工作。您正在从全局范围调用run()
?sth也有道理。你说示例1可以工作,但它不能,需要引用函数名才能工作'my_func'
。您说示例2不起作用,但它确实起作用,而且肯定不会产生所示的错误。