javascript中的对象层次结构和类型:为什么Number和String是函数而不是对象?

时间:2015-04-21 11:50:23

标签: javascript class-hierarchy

只是问为什么

typeof Number 

结果提供功能

Math JSON 等其他内置对象是对象,根据这个答案(What does the built in object hierarchy look like in javascript?),它们都应该与对象,而不是功能

Javascript设计缺陷还是有意义的? 答案是否正确?

1 个答案:

答案 0 :(得分:1)

  

Function构造函数创建一个新的Function对象。在JavaScript中   每个函数实际上都是一个Function对象。

功能是美化对象。

https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function

  

当然,但真正的问题是为什么String Inherits from Function   和JSON从Object继承。我觉得这没有任何意义。例如   如果你向Function原型添加一个方法,它将可用   字符串但不是JSON

JavaScript对象是键和值之间的映射。键是字符串,值可以是任何值。这使得对象非常适合哈希映射。

函数是常规对象,具有可调用的附加功能。

您可以实例化String,但无法实例化Math对象。这可能是令你困惑的事实。



alert(new String());
alert(new Math());