纯函数

简单说下纯函数:

广泛的定义:

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 }

 

posted @ 2022-03-16 21:08  沁霓  阅读(70)  评论(0)    收藏  举报