日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从jQuery 入口方式写jQuery工具类库

發布時間:2025/4/5 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从jQuery 入口方式写jQuery工具类库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###1.jQuery 入口方式 在常用的jquery入口方式中估計大部分人都是直接用的是

$(function(){//code }) 復制代碼

下面詳細說一下jquery的幾種入口方式: ####1.1 $ 符號+ready() 的方式 很多人可能會看到一下這種方式入口,是通過ready() 函數調用,至于原理會在下面講解。

$(document).ready(function(){//code }); 復制代碼

####1.2 $ 符號 +簡寫 的方式 這種應該最多人用的,因為寫起來也是最方便的

$(function(){//code }) 復制代碼

####1.3 jQuery +ready() 的方式 這是jquery完整的寫法,也是最初的形態。

jQuery(document).ready(function(){console.log('jQuery ready 入口方式');}) 復制代碼

####1.4 jQuery + 簡寫入口 這種方式也是跟第二種方式類似

jQuery(function(){console.log('I am jquery ');}) 復制代碼

2. 模擬 jQuery 的入口函數

####2.1 認清楚 $ 符號 其實 $ 是 jQuery 的一個代替品,也就是可以解析為什么上面四種入口方法類似的原因。 嘗試:

var $ = 'I am $'; console.log($); 復制代碼

從控制臺打印出來的是

I am $ 復制代碼

再次測試,引入jQuery 后打印 $ 對象和 jQuery 對象

<script src="jquery-1.11.1.min.js"></script> <script>console.log($);console.log(jQuery);console.log($===jQuery) </script> 復制代碼

打印結果如下:

結論:從上面可以得知 $ 和 jQuery 是同一個對象,也可以得知它是一個方法(或者對象),通過傳遞(a,b)兩個參數,返回了一個新的對象,當然,在這里面也會根據你是否已經創建過該對象。


再次測試,看創建兩個jQuery 對象情況會怎么樣, $ 和 jQuery.

var t1 = $;var t2 = jQuery;console.log(t1===t2); 復制代碼

思考另外一種情況:

var t1 =new $; var t2 = new jQuery; console.log(t1===t2); 復制代碼

這樣子的情況請問相等嘛? 答案是 false

解析:

通過new 是開辟了一個新的空間,去存儲這個對象。具體看一下

console.log(t1); console.log(t2); 復制代碼

再看,如果是通過 $ 或 jQuery 直接打印出來的對象可以看得出是 一個方法里面通過傳參數,而通過 new $ 或 new jQuery 的話直接是返回的對象,下面是兩個的對比。

繼續探究:

返回的屬性有個 proto 對象 打印一下:

var t2 = new jQuery; console.log(t2); console.log(t2.__proto__); 復制代碼

繼續推測:

//下面這句會不會是 打印jQuery 的版本號呢? console.log(t2.__proto__.jquery); 復制代碼

下面這句通過

jQuery.fn = jQuery.prototype ={//這里暴露一些屬性接口信息jquery: version,// 這里把上面的版本號version 通過jquery這個接口獲得 }復制代碼

詳情圖:

貌似跑題了。回到最初的問題 ####2.1 寫一個kQuery 庫 回顧js 的調用方式

var kQuery= function (a){//code } kQuery(a); 復制代碼

測試下你的 code 塊是否被執行了。 再次模擬jquery,它是返回一個 對象。 那我們的kQuery 應該也有個對象返回,

var kQuery= function (a){//返回對象return obj; } 復制代碼

上面代碼明顯是錯誤的,因為 它不知道 obj 是個什么東東,所以應該先定義 obj 為一個對象。

var kQuery= function (a){var obj ={}//返回對象return obj; } 復制代碼

再次看 第一大點,jquery的如后函數是不是都是通過ready() 來執行的,那是不是這個對象應該擁有ready 的這個方法。

var kQuery= function (a){var obj ={ready:function(){console.log('This is ready function');}}//返回對象return obj; } 復制代碼

轉載于:https://juejin.im/post/5a3217c8f265da432652da11

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的从jQuery 入口方式写jQuery工具类库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。