javascript - forEach 循环中未定义的值

标签 javascript node.js foreach

我在 JavaScript 对象中有此键{}

  resolve: function () {

        var result = this.initialValue;

        console.log('initial value:',result);  // 5

        this.functions.forEach(function (element, index) {

            console.log('index:', index, 'result:',result); //index=0, result=undefined :(
            var result = element.func(result);

        });

    }

result 在循环外部定义(值为 Number(5))。但在循环的第一次迭代时,结果变量变得未定义。关于JS还有什么我不知道的吗?

var result = element.func(result); 调用是否以某种奇怪的方式重新定义了result?不,不可能,因为该调用是在第一次记录结果之后进行的。

在本例中,element.func() 只是一个代表 console.log() 的变量

so element.func(result) 应该等同于 console.log(result),但它打印出 undefined 而不是 5。

不知道发生了什么。

最佳答案

函数作用域内存在重复的变量声明。它在定义变量之前就记录该变量。

尝试删除“var”并在重新分配后记录它。

resolve: function () {

        var result = this.initialValue;

        console.log('initial value:',result);  // 5

        this.functions.forEach(function (element, index) {


            result = element.func(result);
            console.log('index:', index, 'result:',result);

        });

    }

关于javascript - forEach 循环中未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336161/

相关文章:

javascript - 获取指向给定对象的所有 Parse.Relations

Javascript - 将参数传递给非匿名函数

node.js - 将 node.js express 服务器作为服务启动

node.js - PhoneGap 中的 Websocket 以及使用 socket.io 的应用程序

java - 在 Java (Blue J) 中对 ArrayLIst 使用 for 循环?

javascript - pikaday 插件 两个日期之间 15 天

javascript - 用户登录身份验证如何与 React Native 一起工作?

javascript - 如何自动调用 RESTful Web 服务

java - 我应该在哪里初始化 for-each 循环中的数组?

php - 使用许多不同长度的数组从 foreach 将数据插入 db