JS中的一等公民:函数
2024-10-21 02:43:18
在JavaScript中,函数可以
- 作为值赋给一个变量
- 作为参数传递给另一个函数
- 作为另一个函数的返回值
所以我们说JavaScript的函数是“一等公民”。
赋值:
var foo = function() {
console.log("Hello World!");
}; foo();
以上代码把一个匿名函数( Anonymous Function)赋值给了变量foo。你也可以使用具名函数,这样有利于Debug,但要注意,使用具名函数不会影响函数的调用方法,仍然是通过变量名加一对圆括号foo()来调用该函数。
参数:
var sayHello = function() {
return "Hello, ";
} var greeting = function(helloMessage, name) {
console.log(helloMessage() + name);
}; greeting(sayHello, "Suki"); // "Hello, Suki
这里把函数sayHello当作参数传给了函数greeting,像函数sayHello这样被作为参数传递的函数就叫回调函数(Callback Function),而像函数greeting这样可以接收另一函数作为参数的就叫高阶函数(High-order Function)。
返回值:
var foo = function() {
return function() {
console.log("Hello, world!");
};
}; //调用方法一:把函数返回值赋值给另一变量 var sayHello = foo();
sayHello(); //"Hello, world!" //调用方法二:使用两对圆括号 foo()(); //"Hello, world!"
注意:如果仅仅是调用了函数foo,则只是返回了另一个函数,而没有执行那个函数。
像函数foo这种可以把另一个函数当作返回值的函数也叫高阶函数(High-order Function)。
最新文章
- 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP
- 第10章 嵌入式Linux的调试技术
- 一些IOS开发中的小技巧
- hdu 2087剪花布条
- PHP基础12:数组
- 最近工作用到的sql脚本
- mobileconfig文件的签名和认证(signed、verified)
- html2canvas 网页截图 下载 上传
- qt QSqlQuery
- HTML中的API
- 用虚拟 router 连通 subnet - 每天5分钟玩转 OpenStack(141)
- 原生js选项卡
- [HNOI 2015]落忆枫音
- day10 函数2
- Hbaseflush处理流程
- 解决git did not exit cleanly (exit code 128)
- AC自动机模板1
- 如何理解nexus
- Java I/O学习——File
- 线程池的corePoolSize、maximumPoolSize和poolSize
热门文章
- SRCNN
- DataGridView 访问任意行不崩溃
- web前端开发学习路线图
- sublime text 入门
- DataTable插件报错:Uncaught TypeError: Cannot read property 'style' of undefined
- P3195 [HNOI2008]玩具装箱TOY(斜率优化dp)
- nginx-负载均衡相关配置 第五章
- [CodeForces - 463B] Caisa and Pylons
- Index.get_indexer 方法的含义
- element ui 上传图片