zoukankan      html  css  js  c++  java
  • js 函数引用透明

    引用透明

    如果表达式可以在不改变程序行为的情况下被其对应的值替换 那么它就被称为引用透明 因此 对引用透明的函数求值对于相同的参数给出相同的值 这样的函数称为纯函数

    简单地 我们可以理解为

    一个表达式在程序中可以被它等价的值替换 而不影响结果 如果一个函数的输入相同 对应的计算结果也相同 那么它就具备「引用透明性」它可被称为「纯函数」

    举个栗子

    其实我们完全可以用log(3) 来直接替代 sum(1, 2)而对结果不会产生任何影响

    那什么是 非引用透明性?

    接着举个栗子

    我们多次调用count得到的结果并不相同 显然这是受到了外部变量counter的影响 我们把这个称为 副作用

    副作用

    简单理解,「副作用」就是 改变一些地方

    例如更改外部变量的值

    我们在举个栗子

    例如我们调用了函数修改了str的值 顺便把document.title给改了

    修改document.title这一步就称之为 副作用

    因此 不难发现副作用的产生往往跟「可变数据」以及「共享状态」有关

    讲点题外话 正确的做法应该是这样的 (副作用的处理)

    总结而言 引用透明性确保了「函数式组件」的独立性 它与外界环境隔离 可被单独分析 因此易于组合和推理

    推荐阅读 js函数式编程

  • 相关阅读:
    【前端面试】前端知识点总结_前端大厂车轮战_转自mahmud(小麦)大神
    【网优】浅谈LTE无线网络优化
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
  • 原文地址:https://www.cnblogs.com/QQPrincekin/p/13814428.html
Copyright © 2011-2022 走看看