详解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 小时前
独立站SEO流量增长:提高Google排名的优化方法
前端·javascript·网络
妮妮喔妮6 小时前
supabase的webhook报错
开发语言·前端·javascript
qq_12084093716 小时前
Three.js 大场景分块加载实战:从全量渲染到可视集调度
开发语言·javascript·数码相机
漂流瓶jz7 小时前
运行时vs编译时:CSS in JS四种主流方案介绍和对比
前端·javascript·css
钮钴禄·爱因斯晨8 小时前
他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!
java·开发语言·前端·javascript·css·html
Watermelo6178 小时前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo
Hello--_--World9 小时前
JS:this指向、bind、call、apply、知识点与相关面试题
开发语言·javascript·ecmascript
jserTang9 小时前
手撕 Claude Code-4: TodoWrite 与任务系统
前端·javascript·后端
腹黑天蝎座9 小时前
大屏开发必读:Scale/VW/Rem/流式/断点/混合方案全解析(附完整demo)
前端·javascript
jserTang9 小时前
手撕 Claude Code-5:Subagent 与 Agent Teams
前端·javascript·后端