我正在研究Javascript的面向對象功能,我正在研究「模塊模式」。我有一個自我執行的功能,我想從另一個文件調用,但我不斷收到錯誤。如何從另一個文件調用自執行功能
這裏的自我執行模塊:
var basketModule = (function() {
var basket = [];
function doSomethingPrivate() {
//...
}
// Return an object exposed to the public
return {
// Add items to our basket
addItem: function(values) {
basket.push(values);
},
// Get the count of items in the basket
getItemCount: function() {
return basket.length;
},
};
})();
我試圖用這個從叫Run.js
另一個文件:
var basketModule = require("./basketModule");
basketModule.addItem({
item: "bread",
price: 0.5
});
console.log(basketModule.getItemCount());
當我運行這個node Run.js
我得到一個錯誤:
basketModule.addItem is not a function.
我嘗試添加一個調用basketModule像這樣:basketModule();
後立即要求,但這樣的結果
TypeError: basketModule is not a function.
我錯過了什麼?
console.log(basketModule.getItemCount());
你需要導出你的代碼:'module.exports = basketModule'。查看https://nodejs.org/api/modules.html#modules_module_exports –
在您的代碼中,'basketModule'不能由匿名函數定義。 – nmnsud