有什么区别:
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,但显然第二个片段不一样,因为它不起作用!谢谢!
答案 0 :(得分:4)
var NodestrapGenerator = module.exports = function NodestrapGenerator() { ... };
这是一个名为“NodestrapGenerator”的命名函数,分配给变量NodestrapGenerator
。
var NodestrapGenerator = module.exports = function() { ... };
这是未命名的功能 aka。 匿名函数,它被赋值给变量NodestrapGenerator
。
最后,他们都引用了相同的功能,所以你编写它的方式没有区别。
有关详细说明,请参阅此处:var functionName = function() {} vs function functionName() {}
至于它为什么不起作用,可能是因为代码正在寻找命名函数NodestrapGenerator
来验证它应该使用的函数,而不是一些随机的匿名函数。
仅供参考,function
有一个属性name
,它将在命名函数(第一个示例)中设置为"NodestrapGenerator"
,但将为空字符串{{ 1}}在匿名函数中(第二个例子)。 (见https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/name)