引用透明性
也是一个和函数式编程相关的概念
如果一个表达式在程序中可以被它等价的值替换,而不影响结果,那它就是引用透明的
如果一个函数的输入相同,对应的计算结果也相同,那么它就具备引用透明性
,可被称为纯函数
例如:
function test1() {
function add(a, b) {
return a + b
}
console.log(add(1, 2) + 2)
console.log(3 + 2)
}
test1()
这里的 add(1,2)
完全可以被数值 3 代替,而不影响任何结果
对于引用透明性,还可以解释为 函数的返回值只依赖于其输入值,这种特性就称为引用透明性(referential transparency)
只有具有引用透明性的函数才能进行缓存,如果外在因素使相同输入值返回不同的结果值,则不能缓存