什么起作用;(函数(global,$,_){}(app,jQuery,_));意思是

What does ;(function(global,$,_){ }(app,jQuery,_)); mean?

本文关键字:jQuery 意思是 app 起作用 函数 global 什么      更新时间:2023-09-26

在一个JavaScript文件中,脚本被包装成这个,为什么要将代码包装成这个?有提到这个吗?为什么定义Basepage=global.Basepage

;(function (global,$,_) {
  var Basepage=global.Basepage = Backbone.View.extend({});
}(app,jQuery,_));

通过设置var Basepage,Basepage将成为该函数中的局部变量,它们不需要为任何进一步的引用编写global.Basepage。这样的组织有几个好处,我将尝试列出每一个。

  1. 函数中的任何变量对代码的其他部分都是不可访问的。如果您声明了像var xvar element这样的通用名称,并且不希望它作为全局变量与其他名称混淆,那么这将非常有用
  2. 在函数内部,"app"被称为"global"。设置"global.Basepage=Backbone.etc.…"意味着在执行该函数后,app将具有BasePage作为属性
  3. 一些javascript加载程序框架依赖于这种风格,以便能够在所有依赖项(如JQuery)加载后初始化模块

它是namespacing的一个方法。通过此操作,您可以将单个变量添加到全局命名空间中,并可以访问它来访问其他方法和变量。

它所做的是在读取代码时自行执行函数,当它执行时,app, jQuery, and _作为变量传递给函数,这就是参数的作用。global = app $ = jQuery _ = _

这为您提供了一种在不污染全局命名空间的情况下封装功能的好方法,并降低了覆盖应用程序中同名变量的风险。