name

2023-02-28  本文已影响0人  樱桃小白菜

匿名函数(Lambdas) 箭头函数 =>

const lamb = (a) => parseInt(a)  * 10

头等函数(first-class Function

const handler = () => console.log ('click once The Fn');

document.addEventListener ('click', handler); 

高阶函数(higher-order functions

const handler = () => console.log ('click once The Fn');

document.addEventListener ('click', handler); 

一元函数(unary functions

const unaryFn = message => console.log (message);


柯里化(currying

一个有n个参数的函数,可以使用柯里化将它变成一个一元函数。

const binaryFunction = (a, b) => a + b;
const curryUnaryFunction = a => b => a + b;

curryUnaryFunction (1); // returns a function: b => 1 + b
curryUnaryFunction (1) (2); // returns the number 3

纯函数(pure functions

这意味着如果你在整个应用程序中的不同的一百个地放调用一个纯函数相同的参数一百次,该函数始终返回相同的值。纯函数不会更改或读取外部状态。

let myArray = [];

const impureAddNumber = number => myArray.push (number);

const pureAddNumber = number => anArray =>
  anArray.concat ([number]);
  
console.log (impureAddNumber (2)); // returns 1

console.log (myArray); // returns [2]

console.log (pureAddNumber (3) (myArray)); // returns [2, 3]

console.log (myArray); // returns [2]

myArray = pureAddNumber (3) (myArray);

console.log (myArray); // returns [2, 3]

上一篇下一篇

猜你喜欢

热点阅读