宛城区微网站建设,仿站 flash网站,免费推广渠道有哪些方式,wordpress设置网址导航一、高阶函数
定义#xff1a;
如果一个函数符合下面2个规范中的任何一个#xff0c;那该函数就是高阶函数#xff1a; 1、若 A 函数#xff0c;接受的参数是一个函数#xff0c;那么 A 就可以称为高阶函数。2、若 A 函数#xff0c;调用的返回值依然是一个函数#x…一、高阶函数
定义
如果一个函数符合下面2个规范中的任何一个那该函数就是高阶函数 1、若 A 函数接受的参数是一个函数那么 A 就可以称为高阶函数。2、若 A 函数调用的返回值依然是一个函数那么 A 就可以称为高阶函数。 常见的高阶函数有Promise、setTimeout、arr.map() 等。
二、函数的柯里化
通过函数调用继续返回函数的方式实现多次接受参数最后统一处理的函数编码形式叫做函数的柯里化。
function sum (a,b,c) {return abc
}
let result sum(1,2,3)
console.log(普通函数,result)// 函数柯里化
function sum2(a) {return (b) {return (c) {return a b c}}
}
let result2 sum2(1)(2)(3)
console.log(函数柯里化, result2)三、综合案例 bodydiv idtest/divscript src../js/react.development.js/scriptscript src../js/react-dom.development.js/scriptscript src../js/babel.min.js/scriptscript typetext/babelclass Login extends React.Component {state {username: ,password: }// 符合高阶函数第2条的定义所以 saveFormData 函数叫做高阶函数// 符合函数柯里化的定义所以 saveFormData 函数也叫函数的柯里化saveFormData (dateType) {return (event) {this.setState({ [dateType]: event.target.value })}}confitm (event) {event.preventDefault();const { username, password } this.state;alert(你输入的用户名是${username}密码是${password})}render() {return (divform action onSubmit{this.confitm}用户名input onChange{this.saveFormData(username)} typetext nameuser/密码input onChange{this.saveFormData(password)} typepassword namepassword /button登录/button/form/div)}}ReactDOM.render(Login/, document.getElementById(test))/script
/body