jQuery.protoype.xxx=function(){}
生活随笔
收集整理的這篇文章主要介紹了
jQuery.protoype.xxx=function(){}
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在的init就是fn和prototype的一個方法。想調用只能 jQuery.fn.init()或者是jQuery.prototype.init(),那怎么辦呢?你看我們一般都是這樣調用fn里面的函數,$().xxx(),那就要想辦法在jQuery中返回fn或者是protoype對象,為了達到這個目的實際上return jQuery.prototype就可以實現,但是程序本身還需要執行init這個方法,那就是下邊的代碼起了作用,把fn在綁定到init的 prototype原型上,這時候就相當月申明了一個jQuery.fn.init類,而且原型指向fn對象,是不是就統一了?這句效果就相當于
jQuery.fn.init=function(selector, context){
?? ?//...................
?????????? return jQuery().find(selectot);
?? 其他的fn方法
}
???? jQuery.fn.init.prototype = jQuery.fn;
fn的init方法和大多數的方法又是返回jQuery數組對象,實現了連寫,實際上這里 fn屬性的定義完全可以去掉。jQuery.fn.init.prototype = jQuery.fn;可以改成jQuery.fn.init.prototype = jQuery.protoype;效果一樣,以后的擴展函數可以寫成jQuery.protoype.xxx=function(){}但是為了兼容版本就不得不這樣寫了。
現在是不是大概有點明白了?這個只是從對象引用的角度分析,因為這樣分析更容易接受,所以上邊講的調用都是靜態調用,jQuery.fn.init();在靜態調用的時候prototype就可以理解成一個靜態的屬性,如果加了new就不一樣了,那就是類之間的繼承,先做這樣的測試
var obj=new jQuery();obj.init();下篇再說繼承關系。
總結
以上是生活随笔為你收集整理的jQuery.protoype.xxx=function(){}的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】C# ??(问问,问号问号)运算
- 下一篇: 采用Lists.UpdateListIt