更新一个JavaScript对象创建模式

Updating a JavaScript Object Creation Pattern

本文关键字:JavaScript 对象 创建 模式 一个 更新      更新时间:2023-09-26

我有下面的JavaScript模式来创建一个简单的插件:

(function(window, document, $) {
    function method_1(){
    }
    function method_2{}
    {
    }
})(window, document, jQuery);

我希望能够以以下方式访问我的插件和插件方法:

myplugin.method_1();
myplugin.method_2();

我如何更新我现有的插件模式来启用这个?!

注意:它必须保持一个自执行的格式,即没有变量声明。

您可以尝试这样做,它返回一个对象,其中包含插件的公共函数。

var myPlugin = (function(window, document, $) {
    function privateFunction() {
    }
    return {
        method_1: function () {
        },
        method_2: function () {
            privateFunction(); // This works
        }
    };
}(window, document, jQuery));
myPlugin.method_1();
myPlugin.method_2();
myPlugin.privateFunction(); // This will throw an error

下面的模式似乎可以完美地满足我的需求:

(function(root, name, make){
    var $ = root['jQuery'] || root['Zepto'];
    if (typeof module != 'undefined' && module['exports']) module['exports'] = make($);
    else root[name] = make($);
}(window, 'myPlugin', function($) {
    function method_1(){
    }
    function method_2{}
    {
    }
    var myPlugin = {
        method_1: method_1,
        method_2: method_2
    };
    return myPlugin;
}));