摘要:利用了這一特性,通過在構造函數(shù)內部用運算符創(chuàng)建并返回另一個構造函數(shù)的實例,因此當我們創(chuàng)建對象的時候,可以使用的形式,也可以省略運算符,直接通過的形式得到對象。
jQuery總體結構
1 (function(window, undefined){ 2 3 var jQuery = (function(){ 4 var jQuery = function(selector, context){ 5 return new jQuery.fn.init(selector, context, rootjQuery); 6 }, 7 8 jQuery.fn = jQuery.prototype = { 9 constructor: jQuery, 10 init: function(selector, context, rootjQuery){ ... }, 11 // 一些原型屬性和方法 12 }; 13 jQuery.fn.init.prototype = jQuery.fn; 14 jQuery.extend = jQuery.fn.textend = function() {...}; 15 jQuery.extend({ 16 // 一堆靜態(tài)屬性和方法 17 }); 18 19 return jQuery; 20 })(); 21 22 window.jQuery = window.$ = jQuery; 23 })(window)具體分析
為什么要在構造函數(shù)jQuery內部(第4行)內部用運算符new創(chuàng)建并返回另一個構造函數(shù)的實例?
通常我們創(chuàng)建一個對象或實例的方式是在運算符new后緊跟一個構造函數(shù),但是如果構造函數(shù)有返回值,運算符new所創(chuàng)建的對象就會被丟棄,返回值將作為new表達式的值。
jQuery利用了這一特性,通過在構造函數(shù)jQuery內部用運算符new創(chuàng)建并返回另一個構造函數(shù)的實例,因此當我們創(chuàng)建jQuery對象的時候,可以使用new jQuery(selector)的形式,也可以省略運算符,直接通過jQuery(selector)的形式得到jQuery對象。
為什么通過jQuery方法創(chuàng)建出來的對象(實際上并不是jQuery方法創(chuàng)建的,是有jQuery原型對象中的init方法創(chuàng)建的),能夠訪問jQuery原型對象上的方法和屬性?
在代碼的第8行,我們可以看到jQuery的原型中包含init方法,該方法是創(chuàng)建jQuery對象時真正調用的方法。在代碼的第13行,將init方法的原型對象重寫為jQuery的原型對象,因此由init創(chuàng)建出來的對象能夠訪問jQuery原型對象上的屬性和方法
為什么在第8行執(zhí)行jQuery.fn = jQuery.prototype?
jQuery.fn是jQuery.prototype的簡寫,可以少些7個字母,方便拼寫
jQuery.extend和jQuery.fn.textend方法有什么作用?
jQuery.extend = jQuery.fn.extend = function([deep,] target, object1 [,objectN]){ .... }
jQuery.extend和jQuery.fn.textend方法用于合并兩個或多個對象的屬性到第一個對象,其中,參數(shù)deep是可選的布爾值,表示是否進行深度合并(即遞歸合并),合并行為默認是不遞歸的。參數(shù)target是目標對象,參數(shù)object1和objectN是源對象;如果僅提供了一個對象,則意味著參數(shù)target被忽略,此時jQuery或jQuery.fn被當做目標對象。通過這種方式可以在jQuery或jQuery.fn上添加新的屬性和方法,jQuery的其他模塊大都是這么實現(xiàn)的。
jQuery.fn和jQuery上的方法有什么不同
jQuery.fn和jQuery上的方法是不同的,jQuery.fn上的方法指的是jQuery原型對象中定義的方法,jQuery上的方法指的是jQuery作為一個Function類型的對象,它的方法屬性。
例如調用$(document).ready(.....)時,ready是定義在jQuery.fn上的方法
例如調用jQuery.ajax(...)時,ajax是定義在jQuery上的方法
jQuery是如何實現(xiàn)鏈式調用的
在一些方法中,在最后會返回處理的結果,如果這個結果是jQuery對象,就可以在調用該方法時,在該方法的后面直接調用其他jQuery相關的方法,實現(xiàn)鏈式調用。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88310.html
摘要:四監(jiān)聽套接字的使用假設此處我們使用作為事件處理模塊在增加事件時用戶可以使用中的字段當事件發(fā)生時該字段也會帶回。在創(chuàng)建監(jiān)聽套接字時將結構分為級監(jiān)聽套接字地址各級都是一對多的關系。 施洪寶 一. 基礎 nginx源碼采用1.15.5 后續(xù)部分僅討論http中的listen配置解析以及優(yōu)化流程 1.1 概述 假設nginx http模塊的配置如下 http{ server { ...
摘要:前面我們通過幾個數(shù)值展示了幾個比較經(jīng)典的網(wǎng)絡的一些特性,下面我們就花一點時間來仔細觀察網(wǎng)絡的變化,首先是在網(wǎng)絡結構上的一些思考,其次是對于單層網(wǎng)絡內部的擴展,最后我們再來看看對于網(wǎng)絡計算的改變。和這類結構主要看中的是模型在局部的擬合能力。 前面我們通過幾個數(shù)值展示了幾個比較經(jīng)典的網(wǎng)絡的一些特性,下面我們就花一點時間來仔細觀察CNN網(wǎng)絡的變化,首先是VGG在網(wǎng)絡結構上的一些思考,其次是Ince...
摘要:是一個輕巧的框架它實現(xiàn)了數(shù)據(jù)的雙向綁定并提供一些基本的指令幫助你提升效率,比如,,,,是的,如你所見,以開頭的指令是它的獨特標識行左右的代碼量,讓應用的開發(fā)和加載的一瞬完成倉庫啟動首先我們來看一下是如何啟動的是的掛載點,它決定在多大范圍的樹 showImg(https://segmentfault.com/img/remote/1460000012478667?w=1920&h=926...
閱讀 3627·2023-04-26 02:32
閱讀 3905·2021-11-23 10:05
閱讀 2291·2021-10-08 10:04
閱讀 2711·2021-09-22 16:06
閱讀 3612·2021-09-22 15:27
閱讀 764·2019-08-30 15:54
閱讀 1698·2019-08-30 13:50
閱讀 2704·2019-08-29 13:56