【发布时间】:2020-09-02 06:41:05
【问题描述】:
getTotal() {
let total = 0;
this.results.forEach(result => {
total += result.marks;
})
return total;
}
forEach 方法内部的回调函数是否是一个闭包,因为它正在访问其范围之外的总变量?
【问题讨论】:
-
嗯,这取决于你如何定义“闭包”。从某种意义上说,这确实证明了闭包,因为那些内部回调函数修改了外部变量
result,但在更深的意义上我会说不,因为没有办法从getTotal函数外部调用这些回调。因此,一旦它定义的函数完成执行,就无法观察total,而后者至少对我来说是闭包 m 的显着特征
标签: javascript callback closures