有关jQuery代码段的更多信息

时间:2013-06-05 17:48:45

标签: jquery backbone.js

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){和关闭部分的全部内容?它的意义是什么?

1 个答案:

答案 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";仍有可能。

当然,这个函数创建了一个闭包,所有在里面声明的变量都不能从全局范围中看到。