我试图理解 CoffeeScript 生成的这段 JavaScript 代码。
我习惯于看到函数定义为:
function Animal(name) {...}
var Animal = function(name){...};
但是 CoffeeScript 会产生以下结果:
var Animal = (function() {
function Animal(name) {
this.name = name;
}
return Animal;
})();
问题:
- 在匿名函数中创建“命名”函数有什么作用?
- 像这样定义 Animal 函数与两种项目符号方式之一有什么优势?
奖金问题 这些是等价的吗?
//Methodology #1
function Animal(name) {...}
//Methodology #2
var Animal = function Animal(name) {...};