模块模式:对象文字与自执行函数

时间:2015-09-10 11:37:08

标签: jquery design-patterns javascript

我已经看到有两种方法可以在javascript中实现模块化模式:

  • 使用对象文字
  • 使用自执行功能(返回对象)

为了这个目的,我经常更多地看到使用函数而不是对象。

除了从外面隐藏一些私人功能之外,它还有什么好处吗?

使用自执行函数:(返回对象)

var Module = (function () {
    var self = this;

    self.init = function () {
        self.someMethod();
    };

    self.someMethod = function () {
        $('#demo').on('click', function(){
            self.privateMethod();
        });
    };

    self.privateMethod = function () {
        console.log("aaa");
    };

    return {
        someMethod: someMethod,
        init:init
    };
})();

Module.init();

使用对象文字

var Module = {    
    init: function(){
        this.someMethod();
        this.self = this;
    },

    someMethod: function(){
        var self = this;
        $('#demo').on('click', function(){
            console.log(this.id); 
            self.anotherMethod();
        });
    },

    anotherMethod: function(){
      console.log("aa");
    }
};

Module.init();

0 个答案:

没有答案