一个标准的js插件结构需要做到
1.不污染全局变量2.插件有自己的私有函数3.插件有自己的发布订阅,在插件执行的不同时期派发事件,使得调用者能够在插件相应的时期执行对应的操作4.插件需要可卸载,同时做一些清理工作5.对于多人开发,此可以作为基本插件,通过js的继承机制来实现,es6中可以使用class extendvar MyPlugin = (function() { var _fn1 = function() {} // 私有函数 var _fn2 = function() {} // 私有函数 var XX = function(config) {} // 插件名字 XX.prototype = { constructor: XX, init: function(config) { this._config = config // dosomething }, get: function(key) { return this._config[key] }, set: function(key, value) { return this._config[key] = value }, $on: function(key, cb) { }, $emit: function(key) { }, $off: function(key, cb) { }, destory: function() { // 一些清理工作 this.$off() } } return XX})()