高阶函数

什么叫高阶函数?

如果一个函数符合下面2个条件中的任何一个,那该函数就是高阶函数:

1、若A函数接收的参数是一个函数,那A函数就可以称之为高阶函数;

2、若A函数调用的返回值依然是一个函数,那么A函数也可以称之为高阶函数。

常见的高阶函数有:Promise、setTimeout、arr.map()等

实例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <title>Document</title>
</head>

<body>
    <div id="app"></div>
    <script type="text/babel">
        class Demo extends React.Component{
            state = {
                username: "",
                password: ""
            }

            saveFormData = dataType => {    
                return event => 
                    this.setState({
                        [dataType]: event.target.value,
                    })
                
            }

            handleSubmit = event => {
                event.preventDefault();
                const {username, password} = this.state;
                console.log("你输入的用户名是:" + username + ", 密码是:" + password);
            }

            render(){
                return (<form onSubmit={this.handleSubmit}>
                    用户名:<input type="text" name="username" onChange={this.saveFormData("username")}/>
                    密码: <input type="text" name="password" onChange={this.saveFormData("password")}/>
                    <button>提交</button>             
                </form>)
            }     
        }
 
        ReactDOM.render(<Demo/>, document.getElementById("app"))
    </script>
</body>

</html>

或普通写法

        class Demo extends React.Component{
            state = {
                username: "",
                password: ""
            }

            saveFormData = (dataType, event) => {    
                this.setState({
                        [dataType]: event.target.value,
                })
            }

            handleSubmit = event => {
                event.preventDefault();
                const {username, password} = this.state;
                console.log("你输入的用户名是:" + username + ", 密码是:" + password);
            }

            render(){
                return (<form onSubmit={this.handleSubmit}>
                    用户名:<input type="text" name="username" onChange={event => this.saveFormData("username", event)}/>
                    密码: <input type="text" name="password" onChange={event => this.saveFormData("password", event)}/>
                    <button>提交</button>             
                </form>)
            }     
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值