TypeScriptでは、単純なクラスPerson3が存在するとします。 typescriptがクラスをコンパイルする方法と通常の匿名関数との実際の違いは何ですか?
class Person3 {
name: string
constructor(public name: string) {
this.name = name
}
}
我々は手でJavaScriptを書いていた場合、私たちはこのような関数を書くかもしれません:
var Person3 = function(name){
this.name = name;
}
ひとつでも純粋関数の構文に行くかもしれない:
function Person3(name){
this.name = name;
}
しかし、活字体以下にコンパイルします。
var Person3 = (function(){
function Person3(name){
this.name = name;
}
return Person3;
}());
匿名関数を保持する式を保持する変数。この無名関数はcontainsであり、名前が変数の名前と一致する名前付き関数を返します。私が知る限り、無名関数はインラインと呼ばれます。呼び出されると、指定された関数が返され、式のかっこに返されるときに評価されます。
なぜですか?理由があるに違いないと確信していますが、ここで何が起こっているのかを本当に理解することができないような気がします。なぜ単にname = anonymousコンストラクタを使用しないのですか?ネストされた関数が私たちに与えるメリットは何ですか?