有什么区别:
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/