JavaScript中的对象与函数构造函数
Object vs function constructor in JavaScript
我想澄清一个概念。请告诉我我的理解是否正确:
许多javascript内置对象,如Object、String、Array、Date、XMLHttpRequest,我们一直说它们是对象,但它们实际上是构造函数,对吗?
或者这两个名称可以互换使用。
感谢
好的,总结一下:
- 每个对象都有一个隐藏的
__proto__
属性 - 函数是也具有
prototype
属性的对象 - 如果,对于某个对象O和函数F,
O.__proto__ == F.prototype
,我们说"O是F的实例" - "F对象"是指作为"F"实例的对象的一种方式。例如:
String对象:object类型的成员,该类型是标准内置String构造函数的实例
其他内置类型和用户定义类型也是如此。如果你有
function Point(x,y) { ... }
p = new Point(10,20)
则"p是点对象"。在一次随意的谈话中,你也可以说"p是一个点",尽管这不是严格正确的。
Object
的原型是JavaScript中大多数实体的根原型。
您列出的项都是构造函数,是的。
typeof Array // 'function'
调用构造函数将返回一个对象。
typeof (new Array()) // 'object'
typeof (new Date()) // 'object'
相关文章:
- 对使用函数构造函数创建的函数的内部引用
- 获取使用函数构造函数创建的函数的名称
- JavaScript 访问函数构造函数中的“this”
- JavaScript中的对象与函数构造函数
- 为什么实例构造函数指向最上面的函数构造函数对象
- 是否可以在函数构造函数中识别哪个对象调用它,并在错误的对象调用时中止创建
- Javascript新函数构造函数没有't返回所需的值
- Crockford 伪经典继承部分中的函数构造函数
- Jasmine:如何在ES6上监视导入的函数/构造函数
- 请解释有关 JavaScript 中的原型属性和函数构造函数的详细信息
- 主干.js - n捕获异常:语法错误:函数构造函数:无法编译函数
- 为什么使用函数构造函数创建的 Javascript 函数无法访问在其外部定义的其他函数
- 从全局范围内的另一个函数 - Javascript 调用函数构造函数的方法
- Javascript - 在闭包中使用函数构造函数是一个坏主意吗?
- Javascript - 为什么“函数构造函数”被称为“函数构造函数”
- 高级语法:“0[构造函数][构造函数]()()” - 它如何计算代码
- 函数构造函数中的局部变量
- 带有setTimeout的函数构造函数
- 如何使用exports或module.exports将函数构造函数对象方法与原型封装在单个模块中
- 如何正确映射函数构造函数