function(){}是什么意思分配给一个variables

我知道函数是javascript中的对象,并且可以将这些函数分配给variables。 我也意识到这个问题: 函数(){})()构造是如何工作的,人们为什么使用它? 。

但我想知道在这种情况下究竟意味着什么: https : //github.com/zsolt/retwis-nodejs/blob/master/domain.js#L43

User = function(){} 

这一行之后是“假定的” User对象的一些成员函数(方法?)的声明。 在这里似乎没有其他的解释答案。

这意味着User是一个不input任何东西,没有任何副作用,不返回任何东西的函数。

最有可能的是一个类的构造函数,稍后将会添加方法。 User.foo = function() { /* ... */}意味着一个静态的方法,所以这更像是一个实用程序类,如果你习惯于在Java体系结构中思考。

你应该在Javascript中查找伪古典inheritance。 类比Java,代码将添加静态方法到User ,而不是对象。

我仍然相当相信代码是遵循Java类模式,因为作者更喜欢User是一个构造函数,可以实例化,具有静态方法,并没有实例方法(我看到),对象的属性是function。 你说得对,这是迂回的,但是如果他们是一个Java开发者,这就是作者所要做的。 它具有的优点是可以稍后将实例方法添加到User ,而对客户端代码的影响很小,但我没有看到这种情况会发生在User (我看起来不长)。

顺便说一句,我推论这是因为函数的CapitalizedNames意味着它应该被称为new的JavaScript工程总的来说,这意味着它是一个类。 搞清楚为什么一个类可能是最好的只是与Java的经验。

在Javascript中创build对象的规范方法是:

function user(config) { this.config = config; ... } User = new user(config);

它使用this上下文(和概念)。 如果要创build命名的属性和/或方法,则使用此格式。

如果您不需要创buildthis上下文,则可以使用以下内容:

User = function(){}

这里的构造函数是匿名的,不会创build任何上下文。 出于同样的原因, new关键字是不需要的。