我是 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()
最佳答案
这里有几个问题。
dummyfunction1 使用了主体中 undefined variable 。应该是这样的:
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);
});
关于javascript - 应用函数 javascript 循环额外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111832/