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

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

相关推荐
熊猫_豆豆2 小时前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行
来恩10033 小时前
jQuery选择器
前端·javascript·jquery
前端繁华如梦3 小时前
树上挂苹果还是挂玻璃球?Three.js 程序化果实的完整实现指南
前端·javascript
CDwenhuohuo4 小时前
优惠券组件直接用 uview plus
前端·javascript·vue.js
川冰ICE5 小时前
TypeScript装饰器与元编程实战
前端·javascript·typescript
AI砖家5 小时前
Vue3组件传参大全,各种传参方式的对比
前端·javascript·vue.js
希望永不加班5 小时前
var局部变量类型推断的利弊
java·服务器·前端·javascript·html
threelab5 小时前
Three.js 3D 地图可视化 | 三维可视化 / AI 提示词
前端·javascript·人工智能·3d·着色器
失眠的咕噜6 小时前
PDA 安卓设备上传多张图片
android·前端·javascript
掰头战士6 小时前
深入了解JS原型及原型继承链机制
javascript