JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数

JavaScript Module Pattern - How can I get a constructor/init function to fire before the object/function is used?

本文关键字:函数 init 构造函数 对象 模式 模块 JavaScript      更新时间:2023-09-26

我一直在查找JavaScript模式以开始。我知道足够多的JavaScript是危险的,但还不足以成为一名优秀的架构师。

我首先使用模块模式创建一个"模型"来管理一些兴趣数据。使用下面的代码,我如何在使用数据时获得一个"构造函数"方法(或某种要激发的init方法)来初始化数据。这些数据将在所有实例中使用,所以我猜我会使用原型吗?

var InterestDataModel = (function () {
    // Private
    var interestModels = [];
    return {
        getInterestModels: function () {
            return interestModels;
        },
        resetInterestModels: function () {
            interestModels.length = 0;
        }
    }; // end return
})();
// Calling code
// When this call is made, I want some initialization to be done already!
InterestDataModel.getInterestModels();

由于您是自执行"InterestDataModel"函数,该函数中的任何内容都将在调用getInterestModels方法之前进行初始化并运行。请参阅以下jsfiddle示例:http://jsfiddle.net/rjrqb/1/