提问人:cvass 提问时间:11/11/2023 更新时间:11/11/2023 访问量:26
ES6 类编译为 ES5 函数构造函数
ES6 Class compilation to ES5 function constructor
问:
我在使用 Typescript 的编译器选项时注意到了一些东西。(打字稿在这里无关紧要,我只是把它当作编译器,就像通天塔一样)
所以,我在.ts文件中有这段代码
(function () {
class Person {
name: string;
constructor(n: string) {
this.name = n;
}
}
const jack = new Person("Jack");
console.log(jack.name);
})();
当我运行编译器(我将输出设置为es5)时,它给了我这个:
"use strict";
(function () {
var Person = /** @class */ (function () {
function Person(n) {
this.name = n;
}
return Person;
}());
var jack = new Person("Jack");
console.log(jack.name);
})();
正如预期的那样,类将转换为构造函数。
但是,为什么需要将其包装在立即调用的函数表达式 (IIFE) 中呢?一个更简单的版本,比如下面的版本,难道还不够吗?
"use strict";
(function () {
function Person(n) {
this.name = n;
}
var jack = new Person("Jack");
console.log(jack.name);
})();
答: 暂无答案
评论
class