我尝试运行这个短程序,它来自于《JavaScript高级程序设计》中的模块章节。
var weekDay = function() {}();
(function(exports) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
exports.name = function(number) {
return names[number];
};
exports.number = function(name) {
return names.indexOf(name);
};
})(this.weekDay = {});
console.log(weekDay.name(weekDay.number("Saturday")));
正确的输出应该是// -> 星期六
。
在浏览器中可以完美运行。然而,当我尝试在Node解释器中运行它时,出现了这个错误:
TypeError: Cannot read property 'name' of undefined
我只能假设这与Node处理exports关键字的方式有关。有人能帮助我至少大致理解这种行为吗?
this.weekDay
。尝试将其更改为weekDay
。 - Louay Alakkadvar weekDay;
。 - Louay Alakkadthis
是由Node预定义的exports
对象。 - Alexander O'Mara