导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

软实力

算法

UI、组件库

Node

冷门技能

函数是 JavaScript 中的「一等公民」

函数在 JavaScript 中可以:

JavaScript 编程特点

面向对象与函数式编程的关系

纯函数

function add(obj) {
	return obj.a + obj.b;
}
function minus(obj) {
  return obj.a - obj.b;
}
function compute(nums) {
	// console.log(add(nums));
	// console.log(minus(nums));
	return {
		add: add(nums),
		minus: minus(nums)
  }
}

var numbers = {
	a: 5,
	b: 1
};

compute(numbers).add;
// compute 不是个纯函数,依赖外界函数,但凡add和minus函数变化,返回的内容就不一致了
// 可移植
function compute(a, b, type) {
	if (typeof(a) === 'number' && typeof(b) === 'number') {
    switch(type) {
    	case 'add':
    		return a + b;
      case 'minus':
    		return a - b;
      case 'mul':
    		return a * b;
    	case 'div':
    		return a / b;
    	default:
				return a + b;
    }
	} else {
		return 'a和b必须为数字';
  }
}
console.log(compute(1, 2, "add"));