Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

underscore中你发现了什么? #9

Open
george-wq opened this issue Aug 11, 2019 · 0 comments
Open

underscore中你发现了什么? #9

george-wq opened this issue Aug 11, 2019 · 0 comments

Comments

@george-wq
Copy link
Owner

underscore你发现了什么?

js是一种多放式语言,支持面向对象也支持函数式编程

函数式编程

函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)

特征:

  1. 闭包、高阶函数

    闭包就是一个绑定了执行环境的函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起使得可以用优雅的方式进行模块化编程

  2. 函数是"第一等公民"

    指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。

    例如:

    var print = function(i){ console.log(i);};
    [1,2,3].forEach(print);
    
  3. 惰性计算

    表达式不是在绑定到变量时立即计算,而是在求值程序需要产生表达式的值时进行计算。(underscore中流式)

  4. 无副作用 纯函数

    所谓"副作用"(side effect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。

Java Stream流式编程

Stream流式编程概念

Stream流式编程操作

Stream流式编程示意图

函数式编程和链式编程的区别 ???

颗粒度是一个抽象的概念 ??? Vue 2.xxx Object.cearte() 颗粒度小 => 3.xxx proxy 颗粒度大

underscore系列之链式调用

参考:

underscore 系列之链式调用

Underscore 整体架构浅析

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant