目前了解闭包,并注意到Angular组件Typescript类已编译为闭包函数。在Javascript类上使用闭包是否有任何特殊原因?例如从一个全新的项目编译AppComponent.ts。
var AppComponent = /** @class */ (function () {
function AppComponent() {
this.title = 'My App';
}
AppComponent.prototype.ngOnInit = function () {
};
AppComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-root',
template: __webpack_require__(/*! ./app.component.html */ "./src/app/app.component.html"),
styles: [__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")]
}),
tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [])
], AppComponent);
return AppComponent;
}());
我意识到闭包有多种用途,封装就是其中之一,因此,当您试图实现的是类时,为什么不使用类呢?
谢谢。
最佳答案
因为function
与Internet Explorer和其他过时的浏览器兼容,但class
关键字不兼容。 class
仅可在支持ES6的环境中使用。因此,出于兼容性考虑,“类”被转换为立即调用的函数。
关于javascript - 为什么编译的Angular代码使用闭包而不是类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57092212/