Skip to content

Latest commit

 

History

History
26 lines (18 loc) · 858 Bytes

File metadata and controls

26 lines (18 loc) · 858 Bytes

引用透明性

引用透明性 也是一个和函数式编程相关的概念

如果一个表达式在程序中可以被它等价的值替换,而不影响结果,那它就是引用透明的

如果一个函数的输入相同,对应的计算结果也相同,那么它就具备引用透明性,可被称为纯函数

例如:

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)

只有具有引用透明性的函数才能进行缓存,如果外在因素使相同输入值返回不同的结果值,则不能缓存