我是Javascript的新手,并创建了一个示例函数来测试javascript的apply函数。
我需要对此代码做一些澄清,
value -x将取第一个数组['val1','val2'],但只是想知道它替换为(this,x).. 2.我看到在console.log中打印了3个项目,最后一项是 - 未定义,未定义,发生了什么
var dummyfunction1 = function(val1,val2){
console.log(array1,array2);
};
[['val1','val2'],['val3','val4']].forEach(function(x){
dummyfunction1.apply(this,x);
});
dummyfunction1()
答案 0 :(得分:3)
这里有几个问题。
dummyfunction1正在使用正文中未定义的变量。它应该是这样的:
var dummyfunction1 = function(val1,val2){
console.log(val1,val2);
};
最后一行dummyfunction1()
正在对没有参数的dummyfunction1进行额外调用。这是你看到的未定义的undefined。
完整的代码应为:
var dummyfunction1 = function(val1,val2){
console.log(val1,val2);
};
// this will automatically be run, no need to call dummyfunction1 on your own after this
[['val1','val2'],['val3','val4']].forEach(function(x){
dummyfunction1.apply(this,x);
});