高阶函数——函数的柯里化
高阶函数:如果一个函数符合下面2个规范中的任何一个,那该函数就是高阶函数
1. 若A函数,接收的参数是一个函数,那么A就是高阶函数
2. 若A函数,调用的返回值依然是一个函数,那么A就是高阶函数
函数的柯里化:通过函数调用继续返回函数的方式, 实现多次接收参数最后统一处理的函数编码形式
常见的高阶函数:new Promise、setTimeout、arr.map()
// 创建组件 class Login extends React.Component{ state = { username: '', password: '' } // 这就是函数的柯里化,接收了两个参数:dataType、event saveFormData = (dataType) => { return (event) => { this.setState({[dataType]: event.target.value}) } } handleSubmit = (event) => { event.preventDefault() // 阻止表单提交 const {username, password} = this.state alert(`用户名是${username},密码是${password}`) } render() { return ( <form onSubmit={this.handleSubmit}> 用户名:<input type="text" onChange={this.saveFormData('username')} name="username"/> 密码:<input type="password" onChange={this.saveFormData('password')} name="password"/> <button>登录</button> </form> ) } } ReactDOM.render(<Login/>, document.getElementById('test'))
生活是痛苦的白天,死亡是凉爽的夜晚。