我是Javascript的新手,并创建了一个示例函数来测试javascript的apply函数。
我需要对此代码进行一些澄清,
值-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()
最佳答案
这里有几个问题。
dummyfunction1正在使用主体中未定义的变量。应该是这样的:
var dummyfunction1 = function(val1,val2){
console.log(val1,val2);
};
最后一行
dummyfunction1()
正在对没有参数的dummyfunction1进行附加调用。这是您看到的未定义的未定义。完整的代码应为:
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);
});