【发布时间】:2017-09-27 03:04:43
【问题描述】:
谁能解释一下这段代码有什么问题以及如何修复它?我真的迷路了。谢谢!
var messageProcessing = function() {
console.log(message);
};
process.on('message', function(message) {
messageProcessing();
});
【问题讨论】:
-
不是真正的关闭问题。
messageProcessing()函数尝试使用不在作用域内的变量message,因为它只定义为后面函数表达式的参数。 -
你应该指定问题,你会得到什么?错误?警告?会发生什么
-
"(它没有调用函数)" -
process.on(...)中的后面函数表达式调用messageProcessing()(响应消息事件)。然后你会得到我已经提到的问题,即message不在该函数的范围内,它只定义为另一个函数的参数。 -
@Emilio 将
message传递给messageProcessing() -
What is the scope of variables in JavaScript? 的可能重复项。 JavaScript 有 词法 范围,而不是动态范围。
标签: javascript node.js closures