TypeScript を発見した後、私はオンライン コンパイラをいじってみたところ、結果として得られた JavaScript コードを見て、関数式について疑問に思いました。
シンプルな TypeScript クラス:
class Person {
firstName: String = "John";
lastName: String = "Doe";
}
次の JavaScript コードが生成されます。
var Person = (function () {
function Person() {
this.firstName = "John";
this.lastName = "Doe";
}
return Person;
})();
もっと単純なもので十分だったのに、なぜ彼らは自己実行機能を選んだのか不思議に思いました。変数と同じ名前の内部関数の目的は何ですか?
そして、なぜ彼らは次のようなもっと単純なものを採用しなかったのですか?
var Person = function() {
this.firstName = "John";
this.lastName = "Doe";
};
あるいは:
function Person() {
this.firstName = "John";
this.lastName = "Doe";
}
私が知る限り、グローバルスコープで関数式を使用しても利点はなく、関数を宣言する前に呼び出すことができないという欠点だけがあります。