我的导师正在谈论功能构造函数......
var neighbor = new Person()
自从我开始学习Javascript以来,它为我提出了一个困扰我的问题:
为什么它们被称为“函数构造函数?”毕竟,它们不构造函数;他们构建对象。为什么不“对象构造函数”?
我知道它们是“构造”的功能,也许这就是名称的来源,但我仍然觉得这个名字很混乱。
我错过了什么吗?
答案 0 :(得分:1)
它们被称为constructor functions,因为它们可以在与new
一起使用时用于创建对象的实例。
使用构造函数
通过编写构造函数来定义对象类型。有一个强有力的惯例,有充分的理由,使用资本初始 信。
- 创建对象的实例
使用new。
答案 1 :(得分:0)
在类型和“强”对象语言(如Java,C ++或C#)中,构造函数,函数和方法是非常不同的东西,它们显然不是一样的。
但javascript不是强类型的。对于javascript,构造函数只是一个基本函数,而不是更多。您可以在没有new
关键字的情况下调用函数,如果您的函数不使用关键字this
,它将返回一个对象(但可能为空)。
因此它被称为“构造函数”,因为这是一个函数,但我们(编码器)将它用作构造函数。
答案 2 :(得分:-1)
不确定是完全正确的。当您使用new
运算符时,实际上构造了一个新的Object。如果你运行console.log(neighbor.constructor)
,你会看到它打印Person
功能代码。