Ale*_*lls 0 javascript foreach node.js
我在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);
});
}
Run Code Online (Sandbox Code Playgroud)
结果在循环外定义(值为Number(5)).但是在循环的第一次迭代中,结果变量变为未定义.JS有什么我不知道的吗?
var result = element.func(result);电话是否以某种result奇怪的方式重新定义?不,那不可能,因为该调用是在第一次登录之后发生的result.
在这种情况下,element.func()只是一个表示console.log()的变量
所以element.func(result)应该相当于console.log(result),但它打印出undefined而不是5.
不知道发生了什么.
小智 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);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3042 次 |
| 最近记录: |