javascript - 应用函数 javascript 循环额外

标签 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()
    

最佳答案

这里有几个问题。

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/

相关文章:

javascript - 使用 jQuery .click 关闭 slider

javascript - Nativescript - 具有嵌套数据的中继器

javascript - window.open() 只是将 url 添加到我当前的 url

javascript - 回调此上下文

php - 高效的解决方法如何? ( Facebook 和 SQL)

javascript - 设置具有特定值的复选框

javascript - bootstrap-collapse.js 隐藏和显示事件

javascript - node.js fs.existsSync 始终为 false

javascript - 使用 Angular 指令初始化多个 jQuery 插件

javascript - JS检查字符串是否在数组中