高阶函数——函数的柯里化

高阶函数:如果一个函数符合下面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'))

 

posted @ 2021-10-17 11:15  我就尝一口  阅读(53)  评论(0编辑  收藏  举报