我注意到很多圖書館都使用下面這種風格來定義他們的圖書館。我還注意到,第一個自我調用函數與Require.js或AMD系統有關,他們總是以工廠作爲參數,我會更多地關注Require.js,一直進入Browserify。建立一個JavaScript庫,爲什麼使用IIFE這種方式?
爲什麼主代碼傳遞到括號內的第一個自調用函數的末尾,這是一個閉包,或者只是被認爲是一個匿名函數,我會深入研究兩者。這有什麼好處?它看起來像封閉作者通過string
,this
和callback
。
請問這會給我的圖書館一個乾淨安全的方式來全球化主要對象在這個例子下面Please
?
(function(globalName, root, factory) {
if (typeof define === 'function' && define.amd) {
define([], factory);
}
else if (typeof exports === 'object') {
module.exports = factory();
}
else{
root[globalName] = factory();
}
}('Please', this, function(){
我想真正深入挖掘JavaScript和創建自己的小MVC架構,我不想聽我傻或其做過的事情,我想挑戰自己,學習。
如果有任何用於創建JavaScript庫或甚至更好的MVC庫的優秀資源,我很想知道。