Javascript - 为什么“函数构造函数”被称为“函数构造函数”
Javascript - Why are "function constructors" called "function constructors"?
我的导师正在谈论函数构造函数...
var neighbor = new Person()
它向我提出了一个问题,自从我开始学习Javascript以来一直困扰着我:
为什么它们被称为"函数构造函数"? 毕竟,它们不构造函数;他们构造对象。为什么不是"对象构造函数"?
我知道它们是"构造"的函数,也许这就是名称的由来,但我仍然发现这个名称非常令人困惑。
我错过了什么吗?
它们被称为构造函数,因为它们在与new
一起使用时可用于创建对象的实例。
使用构造函数
通过编写构造函数来定义对象类型。有一个强有力的约定,有充分的理由,使用大写的首字母 信。
使用 new 创建对象的实例。
在类型和"强"对象语言(如Java,C++或C#)中,构造函数,函数和方法是非常不同的东西,它们的行为显然不同。
但是javascript不是强类型。对于javascript来说,构造函数只是一个基本函数,仅此而已。您可以在没有 new
关键字的情况下调用函数,如果您的函数不使用关键字 this
,它将返回一个对象(但可能为空)。
所以它被称为"构造函数",因为这是一个函数,但我们(编码人员)将其用作构造函数。
不确定是否完全正确。当您使用运算符new
实际上构造了一个新对象。如果你运行console.log(neighbor.constructor)
,你会看到它打印Person
函数代码。
相关文章:
- 构造函数函数闭包变量
- 构造函数函数中的自执行函数的OO上下文/范围
- 为什么在构造函数函数中使用此关键字
- 正在将构造函数函数迁移到TypeScript
- 获取构造函数函数的最佳方式是在JavaScript中使用带名称空间的字符串表示
- 为什么可以't我使用'var'在构造函数函数中
- 获取自定义对象构造函数函数名
- 在构造函数函数中创建只读(get)属性
- 正在检查类型构造函数函数
- Javascript中的内置构造函数函数
- 如何在JavaScript中的函数(函数本身就是一个参数)中传递参数
- 构造函数函数原型可枚举
- 为什么要设置原型's构造函数转换为其构造函数函数
- 从另一个javascript程序调用函数-函数式编程
- 构造函数函数.可以't覆盖对全局变量的引用
- 使用构造函数函数的Javascript继承
- 从数组构造生成器函数
- 如何创建DOM's构造函数函数
- 使用构造函数函数添加和删除项的数据结构
- 在NodeJS中构造helper函数的最佳方式