2012-01-25 248 views
2

我是Scala的新手,仍然在探索這種具有大量構造和特徵的語言。 順便說一句,類構造函數的語法是,它看起來很像JavaScript中的構造函數。JavaScript構造函數和Scala構造函數有何不同?

任何人都可以指出兩者之間的相似之處和差異。

+1

JavaScript中的「構造函數」功能是特設的,而Scala的構造函數是有意識的語言功能。 –

回答

5

我認爲在這種情況下比較Javascript和Scala是不正確的。 Javascript是基於原型和動態類型的,scala是靜態類型的,並且具有經典的繼承模型(+通過特性的多重繼承)。因此,相似性 - 兩種語言的構造函數都用於初始化類的新實例,其他語法,實現,細微差別 - 都是不同的。 Scala有替代contructors,JS - 不,Scala的構造函數的參數上一類本身給出,JS - 這是一個被稱爲與new符,函數等

也許你的意思的Java,JavaScript不?

+0

我根本沒有比較這兩種語言。 JS比其他任何傳統的面向對象的語言都有很大的不同。 或新的。 我正在尋找的差異就像是:替代構造函數就像你正確提到的那樣。 我認爲這種相似性的方式來自於這樣一個事實,即有一種構造在兩種情況下都接受參數,並在其所有成員函數中使用它們。 JS沒有hv類,Scala的構造函數被混合到它的類定義中,所以它們看起來和我一樣。 –

+2

實際上,混合構造函數只是簡潔的語法糖。它被視爲單獨的方法。 – dmitry