在一个JavaScript文件中,脚本被包装成这个,为什么要将代码包装成这个?对此有何提及?为什么定义Basepage=global.Basepage
?
;(function (global,$,_) {
var Basepage=global.Basepage = Backbone.View.extend({});
}(app,jQuery,_));
答案 0 :(得分:1)
通过设置var Basepage
,Basepage将成为该函数中的局部变量,并且他们不需要为任何进一步的引用编写global.Basepage
。像这样的组织有几个好处,我会尝试列出每个。
var x
或var element
这样的常用名称,并且不希望它与其他人混淆为全局变量,那么这非常有用。app
将BasePage
作为属性。答案 1 :(得分:1)
这是namespacing
的一种方法。通过这种方式,您可以将单个变量添加到全局命名空间中,并可以访问它以访问其他方法和变量。
它正在做的是在读取代码时自动执行该函数,并且当它执行时,app, jQuery, and _
作为变量传递给函数,这是参数所采用的。 global = app
$ = jQuery
_ = _
。
这为您提供了一种封装功能而不会污染全局命名空间的好方法,并降低了覆盖应用程序中具有相同名称的变量的风险。