JavaScript字符串是一个原始数据类型,不是一个对象。
- 论坛
- JavaScript字符串是一个原始数据类型,不是一个对象。
14 浏览
JavaScript字符串是一个原始数据类型,不是一个对象。
这并不是开玩笑,我是真的在问。
Douglas Crockford喜欢说,在JavaScript的原型对象导向语言中,没有必要使用new
。
他解释说,new
只是为了让那些来自基于类(即“经典”)的面向对象编程语言的人们感到舒适:
JavaScript,我们几乎不用
new
了JavaScript是一种原型语言,但它有一个
new
运算符,试图使其看起来有点像经典语言。这往往会让程序员感到困惑,导致一些问题编程模式。在JavaScript中,你永远不需要使用
new Object()
,而是使用对象字面量{}
。
好吧,没问题:
new
不好{}
好
但是评论者Vítor De Araújo指出,这两者并不相同。他举例说明了string
不同于object
:
字符串对象和字符串值并不相同:
js> p = "Foo" Foo js> p.weight = 42 42 js> p.weight // 返回undefined js> q = new String("Foo") Foo js> q.weight = 42 42 js> q.weight 42
字符串值不能拥有新的属性。其他类型也是如此。
这里发生了什么,string
不是一个object
吗?我是不是把JavaScript和其他一些一切都是对象的语言搞混了?