详解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,负值,决定

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

相关推荐
徊忆羽菲23 分钟前
Echarts3D柱状图-圆柱体-文字在柱体上垂直显示的实现方法
javascript·ecmascript·echarts
轻语呢喃32 分钟前
JavaScript :字符串模板——优雅编程的基石
前端·javascript·后端
coding随想1 小时前
JavaScript中的BOM:Window对象全解析
开发语言·javascript·ecmascript
難釋懷1 小时前
TypeScript-webpack
javascript·webpack·typescript
Rockson1 小时前
使用Ruby接入实时行情API教程
javascript·python
前端小巷子2 小时前
Web开发中的文件上传
前端·javascript·面试
上单带刀不带妹3 小时前
手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
开发语言·前端·javascript·vue.js·前端框架
前端风云志3 小时前
typescript结构化类型应用两例
javascript
gnip4 小时前
总结一期正则表达式
javascript·正则表达式
爱分享的程序员4 小时前
前端面试专栏-算法篇:18. 查找算法(二分查找、哈希查找)
前端·javascript·node.js