编写jQuery插件(二)——jQuery插件类型和机制

jQuery插件类型

jQuery插件主要有3种类型:

1、封装对象方法的插件

这种插件类型是最常见的一种插件,它将对象方法封装起来,对通过选择器获取的jQuery对象进行操作。

2、封装全局函数的插件

这种插件将独立的函数加到jQuery命名空间之下。如解决冲突用的jQuery.noConflict()方法,常用的jQuery.ajax()和jQuery.trim()方法等。

3、选择器插件

虽然jQuery的选择器十分强大,但还是会需要扩充一些自己喜欢的选择器,如用color(red)来选择所有的红色字的元素

jQuery插件机制

jQuery提供了两个用于扩展jQuery功能的方法,即jQuery.fn.extend()和jQuery.extend()。前者用于扩展上文提到的第1种,后者用于扩展后两种。这两种方法都接收一个类型为Object的参数。Object对象的“键/值”对分别代表”函数或方法名/函数主体“。

另外,jQuery.extend()方法除了可以用于扩展jQuery对象以外,还可以用一个或多个其他对象来扩展一个对象,然后返回被扩展的对象。

语法:jQuery.extend(target,obj1,...[objN])

例:合并settings对象和options对象,修改并返回settings对象。

var settings={validate:false,limit:5,name:"foo"};
var options={validate:true,name:"bar"};
var newOptions=jQuery.extend(settings,options);

结果为:

newOptions={validate:true,limit:5,name:"bar"}

jQuery.extend()方法经常被用于经常用于设置插件方法的一系列默认参数,如下面代码所示:

function student(options){
    options=jQuery.extend({
        name:"xiaoming",
        age:18,
        sex:"boy"            /*默认参数*/
    },options);               /*options为传递的参数*/
};

如果用户调用student方法的时候,在传递的参数options对象设置了相应的值,那么就使用设置的值,否则使用默认值:

student(name:"xiaohua",age:17,sex:"girl");
student(name:"xiaojun",age:16);
student();
原文地址:https://www.cnblogs.com/aaron-shu/p/4097955.html