JavaScript中的对象与函数构造函数

时间:2015-02-24 00:50:28

标签: javascript object constructor

我想澄清一个概念。如果我的理解是正确的,请告诉我:

很多javascript内置对象,比如Object,String,Array,Date,XMLHttpRequest,我们一直说它们是对象,但它们实际上是构造函数,对吗?

或这两个名称可互换使用。

由于

2 个答案:

答案 0 :(得分:2)

好的,总结一下:

  • 每个对象都有一个隐藏的__proto__属性
  • 函数是也具有prototype属性
  • 的对象
  • 如果,对于某个对象O和函数F,O.__proto__ == F.prototype,我们说" O是F&#34的实例;
  • " F object"是一种引用作为" F"的实例的对象的方法。例如:
  

String object: member of the Object type that is an instance of the standard built-in String constructor

和其他内置和用户定义类型相同。如果你有

 function Point(x,y) { ... }
 p = new Point(10,20)

然后" p是一个Point对象"。在一次随意的谈话中,你也可以说" p是一个Point"虽然这不是严格正确的。

答案 1 :(得分:1)

Object的原型是JavaScript中大多数实体的根原型。

您列出的项目都是构造函数,是的。

typeof Array // 'function'

调用构造函数返回一个对象。

typeof (new Array()) // 'object'
typeof (new Date()) // 'object'