jquery源码学习之 设计结构

看了一下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等

原文地址:https://www.cnblogs.com/bobogoodgoodstudy/p/5496299.html