在一個JavaScript文件中,腳本被包裝進了這個,爲什麼要把代碼包裝進去呢?對此有何參考?爲什麼定義Basepage=global.Basepage
?
;(function (global,$,_) {
var Basepage=global.Basepage = Backbone.View.extend({});
}(app,jQuery,_));
在一個JavaScript文件中,腳本被包裝進了這個,爲什麼要把代碼包裝進去呢?對此有何參考?爲什麼定義Basepage=global.Basepage
?
;(function (global,$,_) {
var Basepage=global.Basepage = Backbone.View.extend({});
}(app,jQuery,_));
通過設置var Basepage
,BasePage的將成爲該函數中的局部變量,他們並不需要編寫global.Basepage
任何進一步引用。像這樣的組織有幾個好處,我會盡力列出每個。
var x
或var element
,並且不希望它與其他人混在一起作爲全局變量,那麼這非常有用。app
將具有BasePage
作爲屬性。這是一種方法namespacing
。有了這個,你可以獲得將單個變量添加到全局名稱空間的效果,並且可以訪問它以訪問其他方法和變量。
它正在做的是在代碼被讀取時自動執行該函數,並且當它執行時,app, jQuery, and _
作爲變量傳遞給函數,這些參數就是參數。 global = app
$ = jQuery
_ = _
。
這爲您提供了一種封裝功能而不污染全局名稱空間的好方法,並降低了覆蓋應用程序中具有相同名稱的變量的風險。
這些鏈接應該可以幫助您:http://stackoverflow.com/a/7145534/2287470&http://markdalgleish.com/2011/03/self-executing-anonymous-functions/ – Joe
閱讀此:http:/ /djay.net84.net/immediately-invoked-function-expression-part-2/和this:http://djay.net84.net/immediately-invoked-function-expression-part-3/ – Yang