2013-06-05 53 views
0
var VarHere; 

(function (VarHere) { 
    // Code here  
    var SomeView = Backbone.View.extend({}); 

    $(function() { 
     VarHere.SomeController = new SomeView({ 
      el: $someContainer 
     }); 
    }); 
})(VarHere || (VarHere = {})); 

什麼在這個片段中回事?我已經看到它在一些BackBone js實現中使用。jQuery的更多信息片斷

我知道什麼是jQuery的準備塊裏面的東西呢,基本上建立了VarHere,但什麼是(函數(VarHere){閉部分都是關於什麼是它的意義是什麼?

回答

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是你希望它是什麼。你只傳遞一個參數給一個需要兩個參數的函數,第二個參數是'undefined'。

這是因爲在javascript中,undefined不是受保護關鍵字:var undefined = "something i don't expect";仍然有可能。

當然,這個函數創建一個閉包,裏面聲明的所有變量在全局範圍內都是不可見的。