Skip to content

Latest commit

 

History

History
56 lines (47 loc) · 1.12 KB

higher_order_fn.md

File metadata and controls

56 lines (47 loc) · 1.12 KB
/*
高阶函数,如果一个函数符合下面中任何一个,就是高阶函数
1. 若A函数,接收的参数是一个函数,那么A就是一个高阶函数
2. 若A函数,调用的返回值依然是一个函数,那么A就是一个高阶函数

函数的柯里化,通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数编码形式。

*/

class Login extends React.Component {
 // 初始化状态
 state = {
  username: '',
  password: ''
 }
 // 函数的柯里化
 saveFormData = (dataType) => {
  // console.log(dataType) // username
  return (event) => {
   this.setState({[dataType]: event.target.value})
  }
 }
 render() {
  return (
   <form>
    <input onChange={this.saveFormData('username')}/>
   </form>
  )
 }
}
function sum(a) {
 return (b) => {
  return (c) => {
   return a + b + c
  }
 }
}

let d = sum(1)(2)(3)
saveFormData = (dataType, event) => {
 this.setState({[dataType]: event.target.value})
}

<form onSubmit={this.handleSubmit}>
 用户名:<input onChange={event => this.saveFormData('username', event)} type="text"/>
</form>