CoffeeScript によって生成されたこの JavaScript コードを理解しようとしています。
私は次のように定義された関数を見ることに慣れています:
function Animal(name) {...}
var Animal = function(name){...};
しかし、CoffeeScript は以下を生成します。
var Animal = (function() {
function Animal(name) {
this.name = name;
}
return Animal;
})();
質問:
- 無名関数内に「名前付き」関数を作成するとどうなりますか?
- Animal 関数をこのように定義することと、箇条書きの 2 つの方法のうちの 1 つを定義することの利点は何ですか?
おまけ質問 これらは同等ですか?
//Methodology #1
function Animal(name) {...}
//Methodology #2
var Animal = function Animal(name) {...};