2012-01-25 243 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