读jq之二(两种扩展)
上一篇分析了jquery对象的组成,这次来分析下jquery的extend方法。部分如下:
?
function fun(){}//定义一个类(函数)//给该类原型上添加一个方法extnedfun.prototype.extend = function(obj){for(var a in obj)this[a] = obj[a];//注意:这里的this即是fun.prototype}//调用extend方法给fun.prototype上添加属性,方法fun.prototype.extend({name:"fun2",method1:function(){}})//输出name,extend,method1console.dir(new fun())
?
因此扩展的属性或方法都添加到jquery对象上了。
如bind, one, unbind等可以通过$("...").bind, $("...").one, $("...").unbind方式调用。却不能通过 $.bind, $.one, $.unbind方式调用。
?
jquery库与prototype库一样都是通过extend方法扩展出整个库的。相对来说jqueyr的扩展方式更难理解一些。
总结如下:
a,jQuery.extend({...})是给function jQuery添加静态属性或方法
b,jQuery().extend({...})是给jquery对象添加属性或方法。
?
ps:这里的jQuery即为$。
?
?
?
1 楼 yuyue618 2010-01-14 比我理解的更深啊 2 楼 blank_y 2010-01-18 汗,看到这些理解真是汗颜啊。