纯函数
简单说下纯函数:
广泛的定义:
1:相同的输入有相同的输出
2:函数执行不会产生副作用(例如不会改变全局变量的值,或者改变本地存储的值)
先对比一下slice和splice
1 var names = ['aaa', 'bbb', 'ccc', 'ddd'] 2 var newnames = names.slice(1, 3) 3 console.log(names); 4 console.log(newnames);

slice不会改变原数组,是纯函数
var names = ['aaa', 'bbb', 'ccc', 'ddd'] var newnames = names.splice(2) console.log(names); console.log(newnames);

splice会改变原数组,不是纯函数
例如这样一个函数不是纯函数,改变了ming的值
var ming = 'tanyunyun' var change = function(info) { console.log(ming); info.age = 13 ming = 'node' console.log(ming); } var a = { age: '' } change(a)
这样一个函数是纯函数,相同输入有相同输出,并且不会产生副作用
1 function add(num1,num2) 2 { 3 return num1+num2 4 }

浙公网安备 33010602011771号