【发布时间】:2016-01-14 09:07:12
【问题描述】:
我的导师正在谈论函数构造函数...
var neighbor = new Person()
它提出了一个问题,自从我开始学习 Javascript 以来一直困扰着我:
为什么称它们为“函数构造器”? 毕竟它们不构造函数;他们构造对象。为什么不是“对象构造函数”?
我知道它们是“构造”的函数,也许这就是名字的由来,但我仍然觉得这个名字很混乱。
我错过了什么吗?
【问题讨论】:
-
我称之为“构造函数”,而不是“函数构造函数”。我不记得曾经听说过使用后一个术语。
-
那不是函数构造函数。这是一个函数构造函数:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 仅仅因为它在 Udemy 上并不意味着编写该课程的人值得学习。无论如何,你似乎对术语很感兴趣。当你用
new实例化一个对象时,它的名字根本不重要。重要的是它是如何工作的以及它是如何使用的。你的精力最好花在构建有用的东西上,而不是试图弄清楚某个词的含义。 -
该术语实际上在本文档的顶部使用:developer.mozilla.org/de/docs/Web/JavaScript/Reference/…。不过,我想我开始明白了。这是一个名为“constructor”的函数。如,“满足我的新功能,构造函数。”也许?
-
我以前没听过这个词(当然这没有任何意义)。我只能推测这意味着传统 JavaScript 中的构造函数采用常规函数的形式,与其他语言不同,它们必须位于类内部并具有特定名称。
-
@RyanScharfer 不,这是对实际命名为
Function的类的 构造函数(函数) 的引用。