jQuery闭包理解

参考https://tylermcginnis.com/async-javascript-from-callbacks-to-promises-to-async-await/

闭包定义-是指有权访问另一个函数作用域中的变量的函数。

让这些变量的值始终保持在内存中。

闭包就是能够读取其他函数内部变量(局部变量)的函数

使用场景——函数作为返回值,函数作为参数传递。

返回值

参数传递

上面的写法其实是最原始的写法,而在实际应用中,会将闭包和匿名函数联系在一起使用

形成闭包要符合这三个条件,而且三者缺一不可:

  • 1、函数A内部直接或间接返回一个函数B

  • 2、B函数内部使用着A函数的私有变量

  • 3、A函数外部有一个变量接收B函数

闭包主要的三个特点

  • 1、延长了变量的生命周期;这个特点的好处就是变量会一直存在,

  • 因此也成了一个致命的缺点:就是这个函数的执行空间不会被销毁,而当一段内存空间中有一个不会被销毁的东西一直存在,就会出现内存占用,如果过多的话,还会导致内存溢出,结果引起内存泄漏。

  • 2、可以访问函数内部的私有变量;利用这个特点,我们可以在函数外部访问到内部的数据。

  • 3、保护私有变量;这是所有函数都具备的特点之一,普通函数的内部变量是不能在外部访问的,但是闭包空间可以。

匿名函数主要有两种常用的场景,一是回调函数,二是直接执行函数。

()()这种写法可以说是匿名函数的调用或者叫立即执行函数。

<script language="javascript">
var a = "a";
(function(){
    var a="b";
    alert(a);
})();
alert(a);
</script>

Function 对象是JavaScript 里面的固有对象,所有的函数实际上都是一个Function 对象。
var abc = new Function("x","y","return x*y;");
alert(abc(2,3)); // "6"

声明匿名函数---匿名函数就是没有实际名字的函数。
var abc=function(x,y){
return x+y;
}
alert(abc(2,3)); // "5"
立即执行函数:形如 (function(){})();的一类函数;

  立即执行函数的两种写法

  • (function(){}()); W3C 建议第一种

  • (function(){})();

(0)

相关推荐

  • javascript中的闭包这一篇就够了

    前端技术优选 今天 以下文章来源于程序员成长指北 ,作者koala 程序员成长指北专注 Node.js 技术栈分享,从 前端 到 Node.js 再到 后端数据库,祝您成为优秀的高级 Node.js ...

  • 4.函数-函数的5种声明方式

    我们在声明一个变量 var a = 1 实际分为两步 var a //先声明一个变量a a = 1 // 给a赋值 1. 具名函数 格式: function 函数名(input1,input2){ r ...

  • JS匿名函数和闭包

    $(function() {}) 是$(document).ready(function()的简写, 这个函数什么时候执行的呢? 答案:DOM 加载完毕之后执行. 立即执行函数(function(){ ...

  • 闭包理解

    闭包 刚学过的闭包,分享一下闭包的理解 1.什么是闭包? 闭包就是一个函数,也可以说闭包是一个引用关系,可以理解为一个作用域可以访问另一个函数的局部变量. 代码: function fn() { va ...

  • 深入理解 Python 内部函数和闭包(进阶)

    大家好,我是安果! 本文以内部函数为主线,深入讲解内部函数和闭包的应用场景和原理,学会后你的 Python 水平会再上一个台阶,对工作面试或实战应用都会很有帮助 本文包括: 函数是一等公民 内部函数定 ...

  • 全国人大常委会关于《中华人民共和国刑法》第九章渎职罪主体适用问题的解释(附:理解与适用)

    ☞[招募律师站长]☜ 全国人民代表大会常务委员会关于<中华人民共和国刑法>第九章渎职罪主体适用问题的解释 (2002年12月28日通过) 全国人大常委会根据司法实践中遇到的情况,讨论了刑法 ...

  • 体谅与理解

    人生的路上,如果懂得体谅,懂得理解,懂得宽容,日子就会很温馨,也会很安宁. 人生的路上,如果缺少体谅,不能理解,没有谦让,日子就会很糟糕,越过越烦恼. 生活中的很多烦恼,就是源于我们不能够体谅,过分在 ...

  • 色盲患者看到的世界永远黑白的,他们是无法理解世界的真实色彩的

    哲学那点事(五)--我能认知什么?色盲患者看到的世界永远黑白的,他们是无法理解世界的真实色彩的色盲是由于视网膜视锥细胞中的光敏色素异常或不全所导致的色觉紊乱,从而缺乏辨别一种或多种颜色的能力.色盲又分 ...

  • 特级教师:初中阅读理解33个答题公式 60篇训练题,挑战1分不扣

    语文考试中,同学们普遍认为最难的不是作文,而是阅读理解.初中语文阅读理解篇幅大,内容深奥.要么不知道怎么作答,要么答了很多,却不在踩分点上,自我感觉良好,但得分却少得可怜. 而且在考试中,因为阅读理解 ...

  • 古人是这样藏锋的,大多数人理解错了!

    对于书法的初学者,想必在书店市场上应该看到许多关于书法笔法的论述,很多教材都在强调藏锋的重要性,起笔要逆锋藏锋,收笔也要回锋一下,特别是初学颜真卿楷书的人,老师一般会让学生逆锋起笔,如下图所示: 这种 ...

  • 电路模拟器如何帮助您理解任何电路

    电路模拟器是一种"观察"电路功能的工具.电子设备不容易用肉眼检查,如果你打开一个音频放大器,如果你没有设计和建造电子电路的经验,就很难判断它是做什么的. 模拟理解电路 电路模拟器使 ...

  • 法考过关经验贴|六字箴言“基础”、“理解”与“计划”

    法考并不是高考,分数高低对个人来说影响并不大,因此怎样用最少的时间与精力达到目标就是最重要的课题.我的法考经历可以总结为每天学一点,一学小半年:主要经验是"基础"."理解 ...