我真的在问,这不是开玩笑的设置。
Douglas Crockford喜欢说在javascript原型面向对象语言中不需要new。
他解释说,new添加这些代码只是为了使来自基于类(即“ 经典 ”)的面向对象的编程语言的人们有所舒适:
JavaScript中,我们很难new雅
JavaScript是一种原型语言,但是它有一个new运算符,试图使它看起来像古典语言。这往往会使程序员感到困惑,从而导致一些有问题的编程模式。
您无需new Object()在JavaScript中使用。请改用对象文字{}。
好的:
new 坏
{} 好
但随后评论员维托·德·阿劳霍(VítorDeAraújo)指出两者并不相同。他举了一个例子,显示a string不像是object:
字符串对象和字符串值不是同一件事:
js> p = "Foo"
Foo
js> p.weight = 42
42
js> p.weight // Returns undefined
js> q = new String("Foo")
Foo
js> q.weight = 42
42
js> q.weight
42
字符串值不能具有新属性。同样的事情对于其他类型也有效。
这里string不是an发生了object什么?我会将javascript与其他所有语言混为一谈吗?
潇潇雨雨
函数式编程
相关分类