JavaScript文件中; !function (win, undefined) {}(window);的意義


+function (){}
-function (){}
!function (){}
~function (){}
(function (){})()

這種寫法可以保證匿名函數立即運行且運行一次

傳入的 window 對象從全局變成了局部對象 優點有

1. 運行更快了
2. 可以隨意改名 比如 a, 這樣便於壓縮
3. 可以傳入其他庫而不導致沖突

舉例子
(function ($, w, d, undefined){

$(document).addClass('test');

})(jQuery, window, document);

這樣的情況下 JQ 可以無痛使用 也不需要使用 noConflict 方法避免沖突

至於傳遞 undefined 是因為 ES3 時代這個玩意兒是可以被修改的……真的有人會去做比如 undefined = true 這樣的事情 所以說額外定義一個真正的 undefined 可以保證匿名函數內部的 undefined 是真正的 undefined


免責聲明!

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



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