封装一个js插件其实非常简单
第一步,先拿出需要封装功能函数
function xxx(options) {...};
第二步,避免插件内参数与项目中发生冲突,需要给插件设置作用域
;{function () {
function xxx(options) {..}
}}()
封闭作用域之后在外部如何调用呢
第三步,将插件内函数暴露出去
;{function () {
function xxx(options) {..}
this.xxx = xxx;
}}.call(
this || (typeof window !== 'undefined' ? window : global)
);
第四步,兼容AMD,CMD
;{function () {
function xxx(options) {..}
if (typeof module !== 'undefined' && typeof exports === 'object') {
module.exports = xxx;
} else if (typeof define === 'function' && (define.amd || define.cmd)) {
define(function() { return xxx; });
} else {
this.xxx= xxx;
}
}}.call(
this || (typeof window !== 'undefined' ? window : global)
);