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
关键字是不需要的。