2012-11-21 335 views
1

我有一個JavaScript源代碼,我不明白這個。你能幫我嗎,這是什麼意思?這是什麼意思?

Partnerek = (function() { 

    Partnerek = function() { } 

    //there are functions in this way 
    //I think this is a public function 
    Partnerek.foo = function foo() 
    { 
     //code 
    } 

    //there are functions in this way 
    //this is a non public function 
    function foosecondway() 
    { 
     //code 
    } 

    return Partnerek; 
})() 

它看起來像一個類,但這不是一個類。

  1. 這是什麼?
  2. 爲什麼程序員是這樣寫的?
  3. 這是一個好方法嗎?
  4. 什麼是回報值?
  5. 代碼中的兩個函數「參數」是否相同?
+0

這是相當典型的現代Javascript代碼。你正在尋找一個廣泛的Javascript教程?網上有很多指南和教程,但是StackOverflow並不是尋找個人輔導的好地方。 – lanzz

回答

1

我不確定,但對我來說,它看起來像是一個類的構建,它執行自己。所以,如果你會叫

var test = new Partnerrek() 

這個變量將成爲這個類的一個實例(這是通過返回完成)和構造

Partnerek = function(){} 

將被調用。

+0

爲什麼這樣好?這是慢的,不是嗎?當我打電話時,這總是調用函數,不是嗎?我已經測試過,如果我將這個partnerek提供給對象,會發生什麼。我可以像一個班級那樣使用它,但是當我這樣做時,我沒有使用新的世界。 nom我有點困惑?你能解釋一下嗎?或者說一些關於它的事情。簡單的課堂會更快嗎? – user1693057

+1

準確地說,簡單課是什麼意思?正如Lanzz評論的那樣,這是一種建立js級的現代方式。我一直在檢查它,我認爲通過包裝一個函數,這個類將有閉包和私有作用域,這可能會非常方便,也許這解釋了它好一點:http:// stackoverflow .COM /問題/ 1114024 /構造型的JavaScript對象 –