var VarHere;
(function (VarHere) {
// Code here
var SomeView = Backbone.View.extend({});
$(function () {
VarHere.SomeController = new SomeView({
el: $someContainer
});
});
})(VarHere || (VarHere = {}));
这个代码段中发生了什么?我已经看到它在一些BackBone js实现中使用。
我知道jQuery ready块里面的内容是什么,并且基本上设置了VarHere,但是什么是(函数(VarHere){和关闭部分的全部内容?它的意义是什么?
答案 0 :(得分:2)
它是一个匿名函数,自动调用VarHere
作为param(如果已定义)或空对象
function(param){...} //this is anonymous function
使用:
(function(param){...})(param) //make this function called passing param as parameter of this anonymous function
为什么要使用(VarHere || (VarHere = {}))
?
这样,您确定在被调用函数内定义了参数VarHere
。
通常对于jquery插件,你也看到了:
(function(param, undefined){...})(param)
在这里,您要确保未定义的内部函数是您期望的。您只将一个参数传递给期望两个参数的函数,第二个参数是'undefined'。
这是因为在javascript中,undefined
不是受保护的关键字:var undefined = "something i don't expect";
仍有可能。
当然,这个函数创建了一个闭包,所有在里面声明的变量都不能从全局范围中看到。