js学习小记-----闭包 Bertha 。 2023-06-26 12:07 5阅读 0赞 难道是因为别的同学都出去跨年了所以我学习的心被打乱了吗,我竟然把我闭包的笔记删掉了。。。当看到的时候,脑壳一阵昏,下面给他补上。 在我们学习js的过程中肯定都接触过闭包,所以大家也都知道闭包的重要性,那么什么是闭包呢? 闭包就是在一个函数的内部定义了另外一个函数,并且把它拿到了外部来执行,这就是闭包,并且这个被抛出来的函数还会一直拿着父级函数的作用域中的值,正常情况下一个函数执行完就会被销毁,但是因为闭包的原因,他的作用域并不会被销毁,所以就造成了内存泄漏。内存泄漏这个名词需要好好理解的。(setTimeout()中写的是一个字符串而不是一个函数也会造成内存泄漏) 请看下面这个经典的for循环中产生闭包的例子: for(var i = 0; i < 10; i++){ setTimeout(function(){ console.log(i); }, 1000); } 这个循环应该输出什么呢? 这个循环我们写出他就是想让他输出0-9这十个数字,但是他并不会满足我们的愿望,因为他输出了十个10,大家是不是很好奇,为什么会是十个10呢,怎么说也应该十个9吧。这是因为i的最后一个值是10,当i= 10时就不在进行循环,所以i最后的值等于10,那么肯定也就输出十个10了,像这种情况就是形成了闭包,还有一种情况也是闭包: function fn(){ var a = 10; function fun(){ console.log(a); } bar(fun); } function bar(foo){ foo(); } fn(); 形成闭包我们应该怎么解决呢? 就拿第一个for循环来说,使用立即执行函数可以完美的解决闭包的问题: for(var i = 0; i < 10; i++){ (function(j){ setTimeout(function(){ //这个括号里不能填j 否则会打印出undefined console.log(j); },1000) }(i)); } 这样就会按照我们理想中打印出0-9了。闭包有好也有坏,在实际应用中用到的次数还是挺多的,有时候发现一个函数执行结果并不是预期中那样,那就要看看是不是闭包在搞鬼了。 希望本篇小记对你有帮助吧!
相关 js学习小记-----闭包 难道是因为别的同学都出去跨年了所以我学习的心被打乱了吗,我竟然把我闭包的笔记删掉了。。。当看到的时候,脑壳一阵昏,下面给他补上。 在我们学习js的过程中肯定都接触过闭包,所以 Bertha 。/ 2023年06月26日 12:07/ 0 赞/ 6 阅读
相关 js闭包 所谓闭包,就是变量 从外部开始,到达父函数体,然后再从父函数体内的函数(子函数) 返回到父函数体,简单一句话概括:函数外部调用函数内部的变量。 通过下面的代码给出结果,解释一 朱雀/ 2022年08月13日 14:00/ 0 赞/ 241 阅读
相关 js闭包学习 概念 > 闭包是代码块和创建该代码块的上下文中数据的结合 简单的例子 一个函数就可以看出一个简单的闭包,函数里的变量只有函数内部能够访问到。 funct 柔光的暖阳◎/ 2022年07月24日 11:21/ 0 赞/ 181 阅读
相关 JS——闭包 //在函数外部读取函数内部的变量 function c(){ var a=1000; function x(){ 以你之姓@/ 2022年06月04日 09:48/ 0 赞/ 265 阅读
相关 JS闭包 JS闭包 写在闭包之前: 上下文(context) 是一段程序运行所需要的最小数据集合。我们可以从上下文交换(context switch)来理解上下文,在多进程或多线 一时失言乱红尘/ 2022年05月25日 02:05/ 0 赞/ 294 阅读
相关 js闭包 闭包指的是:能够访问另一个函数作用域的变量的函数。 清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量。 闭包就是将函数内部和函数外部连接起来的一座桥 偏执的太偏执、/ 2022年03月09日 01:36/ 0 赞/ 368 阅读
相关 js--闭包 前言 前一篇博客是介绍的作用域与作用域链,已经开始了JavaScript高级部分的学习,那么这篇博客简单的介绍一下js的闭包。 内容 所谓闭包就是函数 函数作 本是古典 何须时尚/ 2021年09月27日 04:24/ 0 赞/ 487 阅读
相关 js 闭包 闭包 > 闭包就是能够读取其他函数内部变量的函数。闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。 ![6587 ╰半夏微凉°/ 2021年09月10日 07:52/ 0 赞/ 468 阅读
相关 js 闭包 <html> <head> <title>闭包</title> <meta charset="utf-8"> 梦里梦外;/ 2021年08月28日 01:13/ 0 赞/ 474 阅读
相关 js闭包 Js语言在函数内部可以直接读取全局变量,但函数外部无法读取函数内的局部变量 <script type="text/javascript"> var n=100 朱雀/ 2021年06月24日 16:00/ 0 赞/ 498 阅读
还没有评论,来说两句吧...