私はCoffeescriptの出力を研究して、舞台裏で何が起こっているのかをしっかりと理解しようとしています。新しいクラスPersonを宣言すると、IIFEを含むPersonという名前の変数が作成されます。
var Person;
Person = (function() {
function Person() {
this.doThing();
}
Person.prototype.doThing = function() {};
return Person;
})();
ここで私を驚かせているのは、IIFE自体にPersonという名前の関数宣言が含まれていることです。これは元のPerson変数を上書きしますか、それともJavascriptはこれを新しいスコープと見なしますか?PersonのプロトタイプにdoThingが追加された場合、具体的に参照しているオブジェクトはどれですか?
おそらく私の質問はより深い混乱を裏切っています:)