我知道函数是 javascript 中的对象,函数可以赋值给变量。我也知道这个问题:How does the (function() {})() construct work and why do people use it? .
但我想知道在这种情况下它到底是什么意思: https://github.com/zsolt/retwis-nodejs/blob/master/domain.js#L43
User = function(){}
此行之后是“假设的”User
对象的一些成员函数(方法?)的声明。
SO里似乎没有其他解释答案。
最佳答案
这意味着 User
是一个不接受输入、没有副作用且不返回任何内容的函数。
很可能它是一个类构造函数,稍后将向其添加方法。 User.foo = function() {/* ... */}
将暗示一个静态方法,因此如果您习惯于在 Java 架构中思考,这更像是一个实用程序类。
你应该在 Javascript 中查找伪经典继承。类比 Java,代码将向 User
class 添加 static 方法,而不是对象。
我仍然非常确信代码遵循 Java 类模式,因为作者更喜欢 User
是一个可以实例化的构造函数,具有静态方法,并且没有实例方法(我saw),在具有函数属性的对象上。没错,这是迂回的,但如果作者是 Java 开发人员,这就是作者会做的事情。它的优点是可以将实例方法添加到 User
later 而对客户端代码的影响很小,但我没有看到任何证据表明这会发生在 User
(我没看多久)。
顺便说一下,我推断这是因为函数的 CapitalizedNames
意味着它应该在一般的 Javascript 工程中用 new
调用,这意味着它是一个类。弄清楚为什么一个类可能更受欢迎只与 Java 经验有关。
关于javascript - function () {} 分配给变量时是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273596/