闭包的复习

JS闭包是一种将函数与其词法环境结合的机制,允许内部函数访问外部作用域,常用于匿名自执行函数、结果缓存、封装和实现继承。然而,闭包可能导致活动对象无法销毁,占用更多内存。要销毁闭包,可以将引用变量设为null,以便垃圾回收。
摘要由CSDN通过智能技术生成

什么是js闭包?有什么作用?

一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。

闭包的用处:

匿名自执行函数
结果缓存
封装
实现类和继承
Tips:19

闭包及应用场景以及闭包缺点

闭包的应用场景:

匿名自执行函数
结果缓存
封装
实现类和继承
闭包的缺点:

因为闭包的作用域链会引用包含它的函数的活动对象,导致这些活动对象不会被销毁,因此会占用更多的内存。
Tips:54、50、35

闭包的缺点是什么?闭包的应用场景有哪些?怎么销毁闭包

如果要销毁一个闭包,可以 把被引用的变量设置为null,即手动清除变量,这样下次 js 垃圾回收机制回收时,就会把设为 null 的量给回收了。

闭包的应用场景:

匿名自执行函数
结果缓存
封装
实现类和继承
Tips:74、73、56

手写一个闭包函数

function foo() {
    var i = 0;
    return function () {
        console.log(i++);
    }
}
var f1 = foo();
f1(); // 0
f1(); // 1
f1(); // 2

Tips:121

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值