详解JavaScript中把函数作为值

8.4 作为值的函数

JS中函数不仅是一种语法,也是值,也就是说,可以将函数赋值给变量,存储在对象的属性或者数组的元素中,作为参数传入另外一个函数等。

来看一个函数:function square(x){return x*x;}

定义创建一个新的函数对象,将其赋值给变量square。函数名实际上是看不见的,它(square)仅仅是变量的名字,这个变量指代函数对象。函数还可以赋值给其他变量,仍可以正常工作。

除了可以将函数赋值给变量,同样可以将函数赋值给对象的属性。当函数作为对象的属性调用时,函数就称为方法。

函数甚至不需要带名字,当把它们赋值给数组元素时:

将函数做值

复制代码
//这里定义一些简单的函数
function add(x,y){return x+y;}
function substract(x,y){return x-y;}
function multiply(x,y){return x*y;}
function divide(x,y){return x/y;}
//这里的函数以上面某个函数作为参数
//并传给它传入两个操作数然后调用它
function operate(operator,operand1,operand2){
    return operator(operand1,operand2);
}
//下面函数调用实际计算了(2+3)+(4*5)
var i=operate(add,operate(add,2,3),operate(multiply,4,5));//25

这次实现使用函数直接量,这些函数直接量定义在一个对象直接量中

Array.sort()方法用来对数组进行排序,需要传入一个函数,两个参数,函数需返回一个正值,0,负值,决定

排序规则,这个是很典型的应用。

相关推荐
La Pulga几秒前
【STM32】FLASH闪存
android·c语言·javascript·stm32·单片机·嵌入式硬件·mcu
Nan_Shu_61442 分钟前
学习:JavaScript(1)
开发语言·javascript·学习·ecmascript
木木子99991 小时前
Next.js, Node.js, JavaScript, TypeScript 的关系
javascript·typescript·node.js
.生产的驴2 小时前
React 页面路由ReactRouter 路由跳转 参数传递 路由配置 嵌套路由
前端·javascript·react.js·前端框架·json·ecmascript·html5
打小就很皮...2 小时前
PDF 下载弹窗 content 区域可行性方案
前端·javascript·pdf
孤狼warrior9 小时前
爬虫进阶 JS逆向基础超详细,解锁加密数据
javascript·爬虫
前端炒粉10 小时前
18.矩阵置零(原地算法)
javascript·线性代数·算法·矩阵
listhi52010 小时前
利用React Hooks简化状态管理
前端·javascript·react.js
华仔啊10 小时前
这个Vue3旋转菜单组件让项目颜值提升200%!支持多种主题,拿来即用
前端·javascript·css
CsharpDev-奶豆哥11 小时前
JavaScript性能优化实战大纲
开发语言·javascript·性能优化