您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页JS中的闭包和匿名函数

JS中的闭包和匿名函数

来源:二三四教育网

其实这两个我也看了好多遍了但总是记不住!好气哦但还是要保持学习的心态,所以今天手写理一遍,希望不会忘得一干二净。

闭包

有权访问另一个函数作用域中的变量的函数。
创建闭包的常见方式,就是在一个函数内部创建另一个函数。
会携带包含它的函数的作用域,会比其他函数占用更多内存。
会有内存泄漏的问题。如果闭包作用域链中包含html元素,那就意味着无法被销毁。
闭包只能取得包含函数中任何变量的最后一个值。

匿名函数

没有名字的函数: function () {};
使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数。
立即执行函数(function(){…})() 内部定义的变量不会和外部的变量发生冲突

遇到一个题,可以借助这道题加深一下对闭包的认识:

写一个count函数,实现如下效果:

count()===1,
count()===2,
...
依次递增。
不可以有和count同级的其他变量。

由题目条件可以看出,count函数必须是个立即执行函数,立即执行函数有两种:( function(){…} )()和( function (){…} () ),另外还要用到闭包,这样才能实现递增的效果。

下面是一个答案:

var count = (function() {  //立即执行函数
    var i = 1;
    return function() { //闭包
        return i++;
    };
})() 

欢迎大家讨论指正~~~

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务