javascript - 函数式编程实践
问题描述
我正在学习函数式编程并遇到这种编写函数的方式:
function createCounter (){
let counter = 0
return {
increment: function() {
counter += 1
},
currentValue: function() {
return counter
}
}
}
这是用 Javascript 编写函数的常用方法吗?我已经编程至少 3 年了,我不记得任何时候。它看起来像是一个对象和一个函数的混合体。是的,我知道函数是 JS 中的对象。但我只想知道这是否常见以及我应该在工作中开始使用的东西。
解决方案
让我们看看它是如何使用的:
function createCounter (){
let counter = 0;
return {
increment: function() {
counter += 1
},
currentValue: function() {
return counter
}
};
}
let counter0 = createCounter();
console.log(counter0.currentValue()); //0
counter0.increment();
counter0.increment();
console.log(counter0.currentValue()); //2
可以看到,该counter0
对象公开了两个函数,可用于读取或递增计数器。
推荐阅读
- google-apps-script - 如何将具有多个值的单个单元格拆分为单个单元格
- python - Apache Beam HTTP 无界源 Python
- javascript - JavaScript base64string -> 二进制值 -> [Integer] ... 性能提升
- reactjs - 带有函数工厂的 useEffect 得到“React Hook useEffect 收到了一个依赖项未知的函数。改为传递一个内联函数”
- javascript - 如何从被调用的组件中取回变量
- reactjs - 使用 react-select 反应多步表单不更新状态
- java - 如何将定时任务的执行延迟两年或更长时间
- r - 更改 R 中的字符(Google 趋势数据)
- c++ - 定义类的类枚举常量而不提供对类构造函数的访问
- flutter - Flutter - Local_auth(未启用所需的安全功能)