[原]jquery第一行代碼有意思的兩點


且看jquery的第一行和最后一行代碼

(function(window, undefined) {})(window);

這種匿名結構我們屢見不鮮,今天要說的不是這個,而是第二個參數jquery並沒有給他傳值,為什么?我們知道,沒有傳值的形參會被默認設置為window.undefined,那為什么jquery開發者沒有使用window.undefined本身,而是使用一個形參替代呢?

想了一下,至少有兩點值得這樣做(歡迎補充):

  1. undefined被設置為了局部變量,局部變量意味着直接在當前作用域中即可得到使用,不用再查找上級作用域鏈,減少搜索次數提高效率。
  2. 且看壓縮后的代碼,(function(a,b){})(window)undefined被很巧妙的替換成的b,而在后續的代碼中,很多判斷都用到了undefined,而此時用b就行了,代碼量減少很可觀。局部變量在壓縮的時候會被簡短字符替換,這樣可以有效的減少壓縮后的文件大小,所以很多局部變量被拉出來設置,不只是為了暫存結果,也有利於壓縮。

 jquery代碼有很多精巧有意思的地方,值得學習,都是使用語言本事,思想多重要。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM