2013-08-21 24 views
0

我有以下類:差在一個JavaScript類中定義的方法

var myclass = (function(){ 
    var b={}; 

    b.method1 = function(){ 
     console.log("method1"); 
    }; 

    b.method2 = function class2(){ 
     console.log("method2"); 
    }; 

    return b; 
}()); 

是否有比method1其他這些方法之間的任何差異被分配到方法1匿名功能和method2是一個命名函數?

我通常使用method1方法,但只是發現方法聲明的method2。

那麼使用一個優勢嗎?

+0

[如何在JavaScript中使用Revealing模塊模式](http://stackoverflow.com/questions/5647258/how-to-use-revealing-module-pattern-in-javascript) –

+0

method2顯示「class2 「在錯誤日誌中,但方法1顯示」匿名「,您認爲哪些更有用? – dandavis

+0

只是一個方面說明:你可以使用'this'而不是'var b',並擺脫返回語句。 – Broxzier

回答

1

對於命名函數表達式(method2),您可以通過其名稱調用函數內部的函數。

b.method2 = function class2(){ 
    console.log("method2"); 
    if (somecondition){ 
     var something = new class2(); 
    } 
}; 
+0

實際上,該名稱不僅可用於調用該函數,還可用於以更一般的方式引用自身。 – pedromrnd

0

JavaScipt中的函數名基本上是一個變量,因此您可以重用它。這意味着您可以在您的自我執行功能中使用class2,而無需致電b.method2。由於您的自我執行功能返回您的b對象,因此您不能在外面使用class2

相關問題