已采納回答 / 艾倫Aaron
有些地方,太深度了,課程會(huì)拉很長(zhǎng),所以一般是核心點(diǎn)都會(huì)點(diǎn)出來(lái)。具體的細(xì)節(jié),需要自己去看源碼了
2015-05-12
最贊回答 / 逍遙游_xj
原因是:因?yàn)橄燃虞d的JQuery后調(diào)用的document.addEventListener添加DOMContentLoaded。注意jQuery.ready.promise里面的completed如下其實(shí)就是jQuery.ready()。function completed() { document.removeEventListener( "DOMContentLoaded", completed, false ); window.removeEventListener( "load", complet...
2015-02-03
已采納回答 / 艾倫Aaron
首先,回調(diào)函數(shù)是從異步隊(duì)列分離出來(lái)的,那么就是無(wú)縫貼合Deferred的設(shè)計(jì)可以查看下Deferred模塊會(huì)有這么一段代碼<...code...>這里設(shè)計(jì)到規(guī)范的接口,done | fail | progress方法都是通過(guò)jQuery.Callba...
2015-01-04
已采納回答 / 艾倫Aaron
js是動(dòng)態(tài)語(yǔ)言,所以上文是都可以被改變的,而不是傳統(tǒng)語(yǔ)言那種那個(gè)調(diào)用就是指向誰(shuí),具體你可以看看javascript語(yǔ)言精粹
2014-12-24
已采納回答 / 艾倫Aaron
這是跟后面的靜態(tài)與實(shí)例設(shè)計(jì)有關(guān)系簡(jiǎn)單的說(shuō) jQuery底層是擴(kuò)展的靜態(tài)方法,然后共享給實(shí)例調(diào)用開(kāi)發(fā)者通過(guò)通過(guò)選擇器創(chuàng)建的jQuery對(duì)象,是實(shí)例對(duì)象,在原型上大部分的接口都是用來(lái)做一個(gè)過(guò)濾包裝的處理,真正的處理都是通過(guò)靜態(tài)方法實(shí)現(xiàn)的。
2014-12-24
已采納回答 / 艾倫Aaron
我們先看看$.noConflict()方法在加載jquery的時(shí)候做了一個(gè)動(dòng)作?_$ = window.$; ?保存了當(dāng)前的$的引用為_(kāi)$, 因?yàn)榇藭r(shí)可能上一個(gè)script腳本可能存在$的命名空間。所以在當(dāng)前加載的時(shí)候就保存起來(lái)了我們調(diào)用的時(shí)候就干了一件事把當(dāng)前的jquery的命名空間$ 替換成_$,達(dá)到了交換的目的,可能話(huà)沒(méi)有表述清楚
2014-12-24
最贊回答 / MrzHuo
var F = function (e) {? ? "use strict"; ?//這行是定義此函數(shù)使用的是js嚴(yán)格模式? ??? ? ... ?//中間代碼應(yīng)該是對(duì)e進(jìn)行擴(kuò)展, 類(lèi)似 e.newFunction = function () {};? ? return e; ? //返回已經(jīng)拓展好的e對(duì)象}(F || {}); ?//函數(shù)自執(zhí)行, F || {}是短路使用, 如果F存在 e == F, 如果不存在 e == {}/*?這樣的主要目的就是擴(kuò)展F這個(gè)對(duì)象, 如果已經(jīng)存在F對(duì)象了, 就對(duì)F對(duì)象...
2014-12-14
已采納回答 / 艾倫Aaron
?? ???? //通過(guò)閉包隔離出$?? ??? ?;(function($) {?? ??? ??? ?if ($) {?? ??? ??? ??? ?show("通過(guò)閉包隔離后,轉(zhuǎn)為局部變量$存在")?? ??? ??? ?}?? ??? ?})(jQuery);因?yàn)橥獠康?被入侵了, 如果想在局部使用$,可以采用這種方式
2014-12-14
已采納回答 / 艾倫Aaron
不是自動(dòng)刪除,因?yàn)橐玫氖怯靡粋€(gè)dom對(duì)象,所以每次操作的時(shí)候,會(huì)自動(dòng)移到不同的按鈕下面