jquery采用得是工厂模式 ,单例模式
jquery代码简化如下:
(function(){
var jQuery=function(selector){
return new jQuery.fn.init(selector); //new 一下init,init才是真正得构造函数
}
jQuery.fn=jQuery.prototype;//jQuery.fn就是jQuery.prototype得简写
jQuery.fn.init=function(selector){
//这里面是实现真正得构造函数
}
//让init和jQuery得原型指向同一个对象,便于挂载实例方法
jQuery.fn.init.prototype=jQuery.fn
window.$=window.jQuery=jQuery
})()
从中可以看出,你调用得时候省略了new ,在jQuery里面已经帮你调用了,目的是为了使大量调用更方便,这种结构需要借助init方法,最后还要将jQuery和init原型绑在一起,
其它实现方法
var jQuery=function(selector){
if(!this instanceof jQuery){
return new jQuery(selector)
}
//下面进行真正得构造函数得执行
}
此方法单例模式
网友评论