有什么区别:
var NodestrapGenerator = module.exports = function NodestrapGenerator() {
yeoman.generators.Base.apply(this, arguments);
// more code here
};
和:
var NodestrapGenerator = module.exports = function() {
yeoman.generators.Base.apply(this, arguments);
// more code here
};
我正在尝试在coffeescript中编写我的yeoman-generator的index.js,但显然第二个片段不一样,因为它不起作用!谢谢!
最佳答案
var NodestrapGenerator = module.exports = function NodestrapGenerator() { ... };
这是一个名为“NodestrapGenerator”的命名函数,分配给变量NodestrapGenerator
。
var NodestrapGenerator = module.exports = function() { ... };
这是一个未命名函数又名。 匿名函数,它被分配给变量NodestrapGenerator
。
最后,它们都引用相同的函数,因此编写方式没有区别。
更多解释请参见:var functionName = function() {} vs function functionName() {}
至于为什么它不起作用,可能是因为代码正在寻找命名函数NodestrapGenerator
来验证它是它应该使用的函数,而不是一些随机的匿名函数。
仅供引用,function
有一个属性name
,它将在命名函数中设置为“NodestrapGenerator”
(第一个示例),但在匿名函数中将为空字符串""
(第二个示例)。 (参见https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/name)
关于javascript - `var MyConstructor = function MyConstructor()` 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16322807/