我有以下用于创建简单插件的JavaScript模式:
(function(window, document, $) {
function method_1(){
}
function method_2{}
{
}
})(window, document, jQuery);
我希望能够以下列方式访问我的插件和插件方法:
myplugin.method_1();
myplugin.method_2();
如何更新现有的插件模式以启用此功能?!
注意:它必须保持自执行格式,即没有变量声明。
答案 0 :(得分:2)
您可以尝试类似this fiddle的内容,它返回一个包含插件公共函数的对象。
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
答案 1 :(得分:0)
以下模式似乎完全符合我的要求:
(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;
}));