应用函数javascript循环额外

时间:2013-11-21 03:25:10

标签: javascript

我是Javascript的新手,并创建了一个示例函数来测试javascript的apply函数。

我需要对此代码做一些澄清,

  1. 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()
    

1 个答案:

答案 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);
});