看了一下jquery 的源码,想记录一下。因为之前自己也写过一个小类库,看了jquery 之后发现jquery 有些设计思路很值得学习。
执行jqeury 入口方法时,他返回时时一个 jqeury.fn.init()的实例。
而
jquery.fn=jquery.prototype={
'init':function(){
return this;
}
}
jquery.fn.init.prototype=jquery.prototype;
同时定义了扩展方法的函数
jQuery.extend = jQuery.fn.extend = function() {
var options,
target=arguments[0]||{},
i=1,
length=arguments.length;
if (length==i) {//如果参数只有一个 将
target=this;//指向上下文
i--;
}
for(;i<length;i++){
options=arguments[i];
for(var name in options){
target[name]=options[name];
}
}
return target;
}//这里只是粗略的实现
这样的好处在于,将实例对象、jqeury静态对象分开,而他们的原型是同一个。这样我既可以给实例对象 扩展方法,也可以对静态对象扩展方法。
今天先到这里,下一次记录一下一些方法 入each,eq,index等