wdnmd

JavaScript高级程序设计(第三版) 7/25

第七章

函数表达式

1.定义函数的方式有两种,一种是函数声明,一种是函数表达式。

//函数声明
function fuc (a){
}
//函数表达式
var fuc = function(a){
}

 

2.函数声明提升,执行代码前会先读取函数声明,所以函数声明可以先用后声明。

3.递归,一个函数通过名字调用自身的情况,如(也可以用循环解决递归问题)

function func(num){
    if(num <= 1){
        return 1;
    } else {
        return num * func(num-1);
    }
}

这个的问题是复用性不高,如果修改了函数的名字,里面的也要修改,所以可以改成,arguments.callee来替代函数名,是一个指向正在执行的函数的指针。

4.闭包,指的是有权访问另一个函数作用域中的变量的函数。常见创建闭包的方式,在一个函数的内部创建另一个函数。

 一般来讲,当函数执行完毕后,局部活动对象就会被销毁,内存中仅保存全局作用域(全局执行环境的变量对象)。但是,闭包的情况又有所不同。相当于延展函数作用域,但是过度使用闭包的话可能会导致内存占用过多,所以使用需慎重。

5.闭包保存的是整个变量对象,而不是某个特殊的变量。

posted @   FreshChick  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示