头等函数
高阶函数:一个返回另外一个函数的函数。
const hello = function() {
return function(){
console.log('hello, my name is ws');
}
}
hello()()
// 其中,hello()得到return的结果,即return的匿名函数,要想它调用,则需要再调用下函数——()
闭包
闭包:函数和其周围的状态的引用捆绑在一起形成。
可以在另一个作用域中调用一个函数的内部函数并访问到该函数的作用域中的成员。
- 本质:函数在执行时,会放在一个执行栈上,当函数执行完毕后会从执行栈上移除;但是堆上的作用域成员因为被外部引用不能释放,因此内部函数依然可以访问外部函数的成员。
纯函数
输入的x数,进行系列操作后,x的值与输入时的相同。如:slice,数组进行slice的截取后,数组本身的值未发生改变。
柯里化
当一个函数有多个参数的时候,先传递一部分参数调用它;然后返回一个新的函数接收剩余的参数,返回结果。