# func
# 高阶函数
若A函数,接收的参数为一个函数,那么A函数就可以称为高阶函数
若A函数,调用的返回值是一个函数,那么A函数可以称为高阶函数
Promise 递归 setTimeout setInterval Array.map ...
# 函数的柯里化
- 通过函数的调用,继续返回函数的方式,实现多次接收参数,最后实现统一处理的函数编码方式
function sum(a) {
return (b) => {
return (c) => {
return a + b + c
}
}
}
const r = sum(1)(2)(3)
class Login extends React.Component {
state = {
username: '',
password: '',
pwd: ''
}
// 更新状态 统一处理
saveFormData = (type) => {
return (event) => {
this.setState({
[type]: event.target.value
})
}
}
saveData = (type, value) => {
this.setState({
[type]: value
})
}
handleSubmit = (event) => {
event.preventDefault() // 阻止表单默认事件,阻止表单刷新
const { username, password } = this.state;
alert(`用户名是:${username} 密码:${password}`)
}
render() {
return (
<form action="" onSubmit={this.handleSubmit}>
{/* */}
用户名: <input onChange={this.saveFormData('username')} name="username" />
密码: <input onChange={this.saveFormData('password')} name="password" />
{/* */}
确认密码: <input onChange={(event) => {this.saveData('pwd', event.target.value)}} name="pwd" />
<button>登录</button>
</form>
)
}
}
ReactDOM.render(<Login />, document.getElementById('root'))