JavaScript中的对象与函数构造函数
我想澄清一个概念。请告诉我我的理解是否正确: 许多javascript内置对象,比如对象、字符串、数组、日期、XMLHttpRequest,我们一直说它们是对象,但实际上它们是构造函数,对吗 或者这两个名称可以互换使用 谢谢好的,总结一下:JavaScript中的对象与函数构造函数,javascript,object,constructor,Javascript,Object,Constructor,我想澄清一个概念。请告诉我我的理解是否正确: 许多javascript内置对象,比如对象、字符串、数组、日期、XMLHttpRequest,我们一直说它们是对象,但实际上它们是构造函数,对吗 或者这两个名称可以互换使用 谢谢好的,总结一下: 每个对象都有一个隐藏的\uuuu proto\uuu属性 函数是也具有原型属性的对象 如果,对于某个对象O和函数F,O.\uu proto\uu==F.prototype,我们说“O是F的一个实例” “F对象”是指作为“F”实例的对象的一种方式。例如:
- 每个对象都有一个隐藏的
属性\uuuu proto\uuu
- 函数是也具有
属性的对象原型
- 如果,对于某个对象O和函数F,
,我们说“O是F的一个实例”O.\uu proto\uu==F.prototype
- “F对象”是指作为“F”实例的对象的一种方式。例如:
function Point(x,y) { ... }
p = new Point(10,20)
然后“p是点对象”。在随意的对话中,你也可以说“p是一个点”,尽管这并不完全正确。
对象的原型是JavaScript中大多数实体的根原型
您列出的项目都是构造函数,是的
typeof Array // 'function'
调用构造函数会返回一个对象
typeof (new Array()) // 'object'
typeof (new Date()) // 'object'
函数是对象。;-)<代码>对象
实际上没有任何意义。几乎所有东西都是一个“对象”。现在这些元素实际上是构造函数,它们是函数,并且包含静态方法,例如Array.isArray
Oh,XMLHttpRequest是一个宿主对象,因此与OP中的其他对象非常不同。我猜这在技术上是正确的,但我认为它实际上并没有回答这个问题?我相信对象。prototype
(继承自null
)是根原型,而不是构造函数对象本身。@Derek朕會功夫 你是对的;我认为构造器会使这一点变得更加混乱。“然而,函数的原型是Object”不,是函数的一个实例,是从Object.prototype继承的Function.prototype(或者在你的符号中,你可以写函数。{uu-prototype}==Function.prototype
和Function.prototype。{uu-prototype}==Object.prototype
)。@RobG同意;我已经编辑成我希望是对OPs问题最简单的回答。(OP并不是真的在询问原型,但这里和其他地方都有大量的资源,如果他们这样做的话。)