函数(导出)returns 一个错误 "Cannot set property 'weekDay' of undefined"
function(exports) returns an error "Cannot set property 'weekDay' of undefined"
所以我正在阅读 Eloquent JS 书的 'Modules' 章,我遇到了函数(导出)部分的问题。
(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(1));
returns
Cannot set property "weekDay" of undefined
然而,在本书网站上的在线编辑器中,完全相同的代码运行没有问题 return "Monday"。
我想知道是不是 Adobe Brackets 的问题。
使用不依赖于在全局脚本范围内执行的模块模式,其中 this
将是全局对象。我推荐
var weekDay = (function (exports) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return {
name: function (number) {
return names[number];
},
number: function (name) {
return names.indexOf(name);
}
};
}());
所以是的,这是由您的环境造成的,但代码首先是脆弱的。如果你想继续使用那个exports
东西,你也可以做
var weekDay;
(function (exports) {
…
})(weekDay = {});
或者检查 How to get the global object in JavaScript? and Getting a reference to the global object in an unknown environment in strict mode.
所以我正在阅读 Eloquent JS 书的 'Modules' 章,我遇到了函数(导出)部分的问题。
(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(1));
returns
Cannot set property "weekDay" of undefined
然而,在本书网站上的在线编辑器中,完全相同的代码运行没有问题 return "Monday"。
我想知道是不是 Adobe Brackets 的问题。
使用不依赖于在全局脚本范围内执行的模块模式,其中 this
将是全局对象。我推荐
var weekDay = (function (exports) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return {
name: function (number) {
return names[number];
},
number: function (name) {
return names.indexOf(name);
}
};
}());
所以是的,这是由您的环境造成的,但代码首先是脆弱的。如果你想继续使用那个exports
东西,你也可以做
var weekDay;
(function (exports) {
…
})(weekDay = {});
或者检查 How to get the global object in JavaScript? and Getting a reference to the global object in an unknown environment in strict mode.