首页 > 解决方案 > 函数式编程实践

问题描述

我正在学习函数式编程并遇到这种编写函数的方式:

function createCounter (){
  let counter = 0
  return {
    increment: function() {
      counter += 1
    },
    currentValue: function() {
      return counter
    }
  }
}

这是用 Javascript 编写函数的常用方法吗?我已经编程至少 3 年了,我不记得任何时候。它看起来像是一个对象和一个函数的混合体。是的,我知道函数是 JS 中的对象。但我只想知道这是否常见以及我应该在工作中开始使用的东西。

标签: javascriptfunction

解决方案


让我们看看它是如何使用的:

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对象公开了两个函数,可用于读取或递增计数器。


推荐阅读