Javascript `var MyConstructor=函数MyConstructor()`做什么?

Javascript `var MyConstructor=函数MyConstructor()`做什么?,javascript,node.js,coffeescript,yeoman,Javascript,Node.js,Coffeescript,Yeoman,这两者之间的区别是什么: var NodestrapGenerator=module.exports=function NodestrapGenerator(){ yeoman.generators.Base.apply(这个,参数); //这里有更多代码 }; 以及: var NodestrapGenerator=module.exports=function(){ yeoman.generators.Base.apply(这个,参数); //这里有更多代码 }; 我正试图用coffees

这两者之间的区别是什么:

var NodestrapGenerator=module.exports=function NodestrapGenerator(){
yeoman.generators.Base.apply(这个,参数);
//这里有更多代码
};
以及:

var NodestrapGenerator=module.exports=function(){
yeoman.generators.Base.apply(这个,参数);
//这里有更多代码
};
我正试图用coffeescript编写yeoman生成器的index.js,但显然第二个代码片段不一样,因为它不起作用!谢谢

var NodestrapGenerator = module.exports = function NodestrapGenerator() { ... };
这是一个名为“NodestrapGenerator”的命名函数,分配给变量
NodestrapGenerator

var NodestrapGenerator = module.exports = function() { ... };
这是一个未命名的函数。匿名函数,该函数被分配给变量
NodestrapGenerator

最后,它们都引用了同一个函数,所以编写它的方式没有区别

有关更多说明,请参见以下内容:

至于它为什么不工作,可能是因为代码正在寻找命名函数
NodestrapGenerator
,以验证它是应该使用的函数,而不是一些随机匿名函数

仅供参考,
函数
有一个属性
名称
,该属性将在命名函数(第一个示例)中设置为
“NodestrapGenerator”
,但在匿名函数(第二个示例)中为空字符串。(见附件)

这是一个名为“NodestrapGenerator”的命名函数,分配给变量
NodestrapGenerator

var NodestrapGenerator = module.exports = function() { ... };
这是一个未命名的函数。匿名函数,该函数被分配给变量
NodestrapGenerator

最后,它们都引用了同一个函数,所以编写它的方式没有区别

有关更多说明,请参见以下内容:

至于它为什么不工作,可能是因为代码正在寻找命名函数
NodestrapGenerator
,以验证它是应该使用的函数,而不是一些随机匿名函数


仅供参考,
函数
有一个属性
名称
,该属性将在命名函数(第一个示例)中设置为
“NodestrapGenerator”
,但在匿名函数(第二个示例)中为空字符串。(参见)

应该没有区别。重要的部分是设置了
模块.exports
。此处未显示的某些代码必须嗅探代码,并期望看到arguments.callee.name与公开命名变量关联。第一个是命名函数表达式,第二个是匿名函数表达式。在
//此处有更多代码的地方,必须引用名称才能起作用。应该没有区别。重要的部分是设置了
模块.exports
。此处未显示的某些代码必须嗅探代码,并期望看到arguments.callee.name与公开命名变量关联。第一个是命名函数表达式,第二个是匿名函数表达式。在
//此处有更多代码的地方,必须引用名称才能起作用。