插件需要满足的条件
一个可复用的插件需要满足以下条件:
1)插件自身的作用域与用户当前的作用域相互独立,也就是插件内部的私有变量不能影响使用者的环境变量;
2)插件需具备默认设置参数;
3)插件除了具备已实现的基本功能外,需提供部分API,使用者可以通过该API修改插件功能的默认参数,从而实现用户自定义插件效果;
4)插件需提供监听入口,及针对指定元素进行监听,使得该元素与插件响应达到插件效果;
5)插件支持链式调用。
js原生插件开发几种写法:
1.面向对象方式:调用的时候使用new创建对象
ar Auto=Auto||{};
(function(){
var plugin=function(options){
this.options=this.extend({xxxxx},options);
//暴露一些api
plugin.prototype={
init:function(){
},
extend:function(){
}
}
Auto.Plu=Plugin;
})();
var p=new Auto.Plu(xxxx);
2.闭包方式:调用是不用使用new
可以把插件当做一个函数,插件内部的变量及函数的私有变量,为了在调用插件后依旧能使用其功能,闭包的作用就是延长函数(插件)内部变量的生命周期,使得插件函数可以重复调用,而不影响用户自身作用域。
var Auto=Auto||{};
(function(){
var plugin=(function(){
var _options={
default_word:'ddd'
};
function _firstFunc(str){
alert(str);
};
function _secondFunc(str){
alert(str);
};
return {//暴露的一些api
firstFunc:_firstFunc,
secondFunc:_secondFunc
};
})();
Auto.Plu=plugin;
})();
Auto.Plu.firstFunc('xx');