我正在学习Angular组件的生命周期。在调试ExpressionChangedAfterItHasBeenCheckedError
时,我偶然发现了这个code:
class AppComponent {
_time;
get time() { return this._time; }
constructor() {
this._time = Date.now();
setInterval(() => {
this._time = Date.now();
}, 1);
}
}
当我进行大量打印时:
app = new AppComponent();
for (var i = 0; i < 1000000; ++i) {
console.log(app.time);
}
打印值根本不会更改,尽管更改应该非常频繁。我的问题是:是否有一个保留app.time
值的闭包,以便多个console.log
语句看到相同的值?还是不是这样,为什么阻止更新?