0
所以我經歷雄辯JS書的「模塊」第一章,我已經遇到了與功能(出口)部分的問題。功能(出口)將返回錯誤「無法設置屬性‘工作日’的未定義」
(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));
回報
Cannot set property "weekDay" of undefined
但是在本書的網站上的在線編輯器完全相同的代碼運行沒有問題,並返回「星期一」。
我在想,如果這是Adobe Brackets的問題。
省略'this.',一切都會好的。看起來你想要分配給一個變量,而不是在你不知道的某個對象上創建一個屬性(而這在這裏顯然不存在)。 – Bergi
@Bergi是的,這工作!謝謝。然而,我想知道它爲什麼在網站[this](http://eloquentjavascript.net/10_modules.html)上的_this_下工作,它在** Objects作爲接口**部分。 – matveytn
正如下一段所說,「*上一個模式通常被用於瀏覽器的JavaScript模塊所使用*」,在這種情況下「*在函數之外,this指的是全局作用域對象* – Bergi