jquery源码学习之 设计结构

本文解析了jQuery的设计模式,重点介绍了其入口方法返回的实例及如何通过`jQuery.fn.init`实现。探讨了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值