国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Jquery選擇器 $實現原理

2024-05-06 14:12:37
字體:
來源:轉載
供稿:網友
但由于工作的原因,很久不曾做過網站項目了,也沒有時間去好好研究Jquery的源碼,這個疑問也一直沒有得到解決了, 今天,空閑之余,打開Jquery的源碼看看,才明天它實現的原理,原來在加入jquery的js這個文件時,實際上是執行了一個函數,在這個函數里己經初始化了$和JQuery變量, 實現這個功能源碼如下(代碼已刪減和更改,并不影響說明實現原理):
代碼如下:
(function() {
var
// Will speed up references to window, and allows munging its name.
window = this,
// Will speed up references to undefined, and allows munging its name.
undefined,
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
jQuery = window.jQuery = window.$ = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context);
},
// A simple way to check for HTML strings or ID strings
// (both of which we optimize for)
quickExpr = /^[^<]*(<(.|/s)+>)[^>]*$|^#([/w-]+)$/,
// Is it a simple selector
isSimple = /^.[^:#/[/.,]*$/;
jQuery.fn = jQuery.prototype = {
init: function(selector, context) {
// Make sure that a selection was provided
// Make sure that a selection was provided
selector = selector || document;
this[0] = selector;
this.length = 1;
this.context = selector;
return this;
},
show:function() {
alert("this.show");
},
// Start with an empty selector
selector: "",
// The current version of jQuery being used
jquery: "1.3.2"
};
jQuery.fn.init.prototype = jQuery.fn;
})();
function test(src){
alert($(src));
$(src).show();

從代碼里我們可以看到有這樣一個函數執行了(funtion(){})();

var window = this;
_jQuery = window.jQuery;
_$ = window.$;

這幾句代碼應該是聲明jQuery和$變量,至于為什么能這樣子用我還沒弄明白,等待高人解決??!

但我認為這并沒關系,因為最重要的是下面這段代碼:

jQuery = window.jQuery = window.$ = function(selector, context) {
return new jQuery.fn.init(selector, context);
};

可以看出創建jQuery.fn.init這樣一個函數返回給$, 這樣是可以使用$實例了,但還不能訪問jQuery.fn里的方法,因此需要加上后面這句:

jQuery.fn.init.prototype = jQuery.fn;

實現了這些, Jquery中的其他功能就很好理解了, 無非是添prototype或extend中的方法了.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 若尔盖县| 招远市| 绍兴县| 麻栗坡县| 吕梁市| 廊坊市| 刚察县| 浪卡子县| 菏泽市| 嘉鱼县| 昭觉县| 金乡县| 柯坪县| 南漳县| 射洪县| 连州市| 绵竹市| 汤阴县| 余干县| 津南区| 贞丰县| 和静县| 仙居县| 平顶山市| 托里县| 左权县| 怀集县| 崇阳县| 荔浦县| 夹江县| 定安县| 长葛市| 四平市| 彭阳县| 玉林市| 旅游| 遂昌县| 高州市| 南华县| 孝感市| 湖南省|