有人可以告诉我这里发生了什么(在 Firefox 和 Chrome 中测试)。
我有一个简单的函数返回一个闭包。
function say (name) {
var msg = 'hallo';
return function () {
console.log(msg, name);
}
}
var sayName = say('joe');
sayName();
如果检查浏览器控制台,我会得到预期的结果:
Hallo Joe
但是,如果我省略最后一行并从控制台运行 sayName() ,我会得到以下信息:
Hallo Joe
undefined
额外的未定义来自哪里?