在发现 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";
}
据我所知,在全局范围内使用函数表达式没有任何好处,只有在声明之前无法调用函数的缺点。