高阶函数
发布日期:2021-05-07 01:01:57 浏览次数:20 分类:原创文章

本文共 2704 字,大约阅读时间需要 9 分钟。

什么叫高阶函数?

如果一个函数符合下面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>)            }             }

 

上一篇:[BZOJ3065]带插入区间K小值
下一篇:[BZOJ4878]挑战NP-Hard

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月18日 23时48分57秒