Javascript - 为什么“函数构造函数”被称为“函数构造函数”?

时间:2016-01-14 09:07:13

标签: javascript constructor

我的导师正在谈论功能构造函数......

var neighbor = new Person()  
自从我开始学习Javascript以来,它为我提出了一个困扰我的问题:

为什么它们被称为“函数构造函数?”毕竟,它们不构造函数;他们构建对象。为什么不“对象构造函数”?

我知道它们是“构造”的功能,也许这就是名称的来源,但我仍然觉得这个名字很混乱。

我错过了什么吗?

3 个答案:

答案 0 :(得分:1)

它们被称为constructor functions,因为它们可以在与new一起使用时用于创建对象的实例。

  

使用构造函数

     
      
  • 通过编写构造函数来定义对象类型。有一个强有力的惯例,有充分的理由,使用资本初始   信。

  •   
  • 使用new。

  • 创建对象的实例   

答案 1 :(得分:0)

在类型和“强”对象语言(如Java,C ++或C#)中,构造函数,函数和方法是非常不同的东西,它们显然不是一样的。

但javascript不是强类型的。对于javascript,构造函数只是一个基本函数,而不是更多。您可以在没有new关键字的情况下调用函数,如果您的函数不使用关键字this,它将返回一个对象(但可能为空)。

因此它被称为“构造函数”,因为这是一个函数,但我们(编码器)将它用作构造函数。

答案 2 :(得分:-1)

不确定是完全正确的。当您使用new运算符时,实际上构造了一个新的Object。如果你运行console.log(neighbor.constructor),你会看到它打印Person功能代码。