javascript - function () {} 分配给变量时是什么意思

标签 javascript node.js

我知道函数是 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/

相关文章:

javascript - 如何减慢代码速度?

node.js - NodeJS,如何使用 google api 使用刷新 token 获取新 token ?

Node.js Mocha Sequelize Error 连接管理器关闭后调用ConnectionManager.getConnection

javascript - 向客户端提供个性化 JavaScript 代码

javascript - 为什么以下 JavaScript 函数不打印任何内容?

javascript - 在 Node.js 附加代码中使用 Nan 创建数组

javascript - Node 中的异步代码 - 避免重复使用 async/await

javascript - 在获取模型后渲染 Marionette 区域

javascript - 如何始终显示 AddThis 的共享计数器?

Javascript 建议点符号?