了解了js的new機制,以及prototype,prototype.constructor相關知識就能明白這里。
課程說的太繞了,反而把人繞暈。況且有些理解,并不一定適合。
課程說的太繞了,反而把人繞暈。況且有些理解,并不一定適合。
2017-12-27
使用了jQuery可以做到以下的幾點:
1.簡潔的API
2.優雅的鏈式調用
3.強大的選擇器
4.便捷的操作
執行一個動畫,需要設計的東西:
瀏覽器的兼容、各種屬性的獲取、邏輯流程、性能等等。
1.簡潔的API
2.優雅的鏈式調用
3.強大的選擇器
4.便捷的操作
執行一個動畫,需要設計的東西:
瀏覽器的兼容、各種屬性的獲取、邏輯流程、性能等等。
2017-12-25
有小伙伴說
$.fn.init.prototype = $.fn; 是$.fn.init繼承了$,其實是不對的,這里并沒有繼承,唯一作用就是讓$.fn.init.prototype指向$.fn,這樣一來init實例對象調用each方法會到$.fn.init.prototype上查找,也就是到$.fn上查找,由于$.fn上有each方法所以找到了,可以調用。如果說真要想$.fn.init繼承$,則應該這么寫:
$.fn.init.prototype.prototype = $.fn;或者$.fn.init.prototype = Object.create($.fn)
$.fn.init.prototype = $.fn; 是$.fn.init繼承了$,其實是不對的,這里并沒有繼承,唯一作用就是讓$.fn.init.prototype指向$.fn,這樣一來init實例對象調用each方法會到$.fn.init.prototype上查找,也就是到$.fn上查找,由于$.fn上有each方法所以找到了,可以調用。如果說真要想$.fn.init繼承$,則應該這么寫:
$.fn.init.prototype.prototype = $.fn;或者$.fn.init.prototype = Object.create($.fn)
2017-12-22
$(selector,context)用于返回一個jq類數組對象,這個對象如何產生然后返回呢?通過new的方式對init函數進行構造調用,這個init函數我們打算綁在哪呢?打算綁在jquery.prototype上,每次一長串jquery.prototype是不是覺得太長了?那我們用jquery.fn來簡寫吧。于是出現了
jquery.fn=jquery.prototype={
init:function(){}
};
可這樣會導致重寫原型對象,jquery.prototype的constructor指向意外丟失了,那我們重新給其設置一下
constructor指向jquery吧
jquery.fn=jquery.prototype={
init:function(){}
};
可這樣會導致重寫原型對象,jquery.prototype的constructor指向意外丟失了,那我們重新給其設置一下
constructor指向jquery吧
get方法最好定義在aQuery.prototype上,而不是直接定義在給每個實例對象上,這樣模仿jquery更像些
2017-12-21
看蒙了,最后找到老師的博客,一下看明白了http://www.cnblogs.com/aaronjs/p/3278578.html#undefined
2017-12-12
最新回答 / jixianceshi
自問自答:js語法的一種特殊寫法,+運算符后面,會把字符串格式的i轉換成數值類型。eg: "23" -> 23; "23fsf" -> NaN;
2017-12-08
$.data(body1, 'age', '25');
$.data(body2, 'age', '28');
console.log($.data(body1, 'age'));//25
console.log($.data(body2, 'age'));//28
檢查了$.cache,并沒有“age”屬性,說明在靜態方法中并沒有將$("body")作為dom對象處理,只是按照普通對象的處理方式,附加在jQuery.expando屬性,側面反映了jquery的dom緩存機制
$.data(body2, 'age', '28');
console.log($.data(body1, 'age'));//25
console.log($.data(body2, 'age'));//28
檢查了$.cache,并沒有“age”屬性,說明在靜態方法中并沒有將$("body")作為dom對象處理,只是按照普通對象的處理方式,附加在jQuery.expando屬性,側面反映了jquery的dom緩存機制
2017-12-07
“前面的第三小節留下了一個疑問:jQuery.data() 與 .data()為什么會有區別?”這句話所指區別在何處?jQuery.data() 與 .data()的值應該都會被覆蓋掉吧。也許老師想說的是運行$("#id").data("xx","yy");$("#id").data("xx","zz");“yy”并不會覆蓋“zz”,這是由于$.fn.init并不是單例模式的。
2017-12-07