仔细看了看,上次的jquery源码不太对,jquery的作者并不是这样写的,原谅我的不仔细。这样写的话如果获取到dom元素后,在加$().css,等方法时,会造成一个极大的内存浪费。源码是这样的1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31(function(global){
function jQuery(selector){
return new jQuery.fn.init(selector);
}
jQuery.fn = jQuery.prototype = {
constructor:jQuery,
init:function(selector){
if(jQuery.type(selector)==="string"){ //选择器
const elements = document.querySelectorAll(selector)
for(let i = 0;i<elements.length;i++){
this[i] = elements[i];
}
this.length=elements.length;
}else if( selector.nodeType ){ //DOM元素
this[0] = selector;
this.length = 1;
}
}
}
jQuery.fn.init.prototype = jQuery.fn;
global.$ = global.jQuery = jQuery;
})(window)
分享
新浪微博
腾讯微博
QQ空间
QQ好友
微信
豆瓣
人人网
开心网
Facebook
Twitter
Pocket
Google+
有道云笔记
明道
朋友网
Tumblr
Instapaper
LinkedIn
取消