对于主要目标是创建另一个函数的闭包,我想知道在现代 javascript 中,是否最好只在现代 javascript 中使用类。
// Closure way private counter
const countPlusOne = () => {
let count = 0;
return () =>{
count++;
console.log(count);
}
}
let demoAdd = countPlusOne();
demoAdd(); // 1
demoAdd(); // 2
demoAdd(); // 3
老实说,我从来不喜欢以这种方式使用闭包(但我认为它们非常适合中间件之类的东西),因为它们很难阅读。
那么,我是否应该像上面那样将闭包重构为类?它们的行为似乎更类似于其他语言中的典型对象。
// Class way private counter
class countPlusClass{
count = 0;
add(){
this.count++;
console.log(this.count)
}
}
const demo = new countPlusClass();
demo.add(); // 1
demo.add(); // 2
demo.add(); // 3
最佳答案
不,类(class)并不总是更好。他们只是不同。我想说的主要区别是
所以请明智地选择。您(可能在将来)需要多种方法吗?你封装状态吗?然后使用 class
创建对象。你只需要一个函数来调用吗?然后创建一个闭包。
https://stackoverflow.com/questions/71670779/