美文网首页
浅谈JS的闭包

浅谈JS的闭包

作者: 明人不放按屁 | 来源:发表于2020-01-17 17:39 被阅读0次

今天写代码的时候碰到一个修改需求,有一列数据,可以删除,点击某条数据删除的时候会弹出自定义的模态确认框,并且带出该数据的id。


1.png 2.png

我在项目中使用的方法是:写两个函数,并且在对象里面添加一个ID为空;点击“删除“的时候,执行第一个函数,弹出模态框,并将带出的该数据的id存进之前在对象里面的空ID;弹出模态框之后,点击“确认删除”时,执行第二个函数,并且执行删除的接口,将删除接口需要的id等于之前存进的ID,即可以实现删除。
之后我又写了一种方法,js的闭包(感觉使用的闭包方法,但并不确定是不是闭包方法),函数套函数。

<body>
    <button onclick="btn(1111)">点击出来</button>
    <button id="del" style="display: none;">删除</button>
    <script>
        let Del = document.getElementById('del')

        function btn(a) {
            del.style.display = "block"
            console.log('我是父函数' + a)
            Del.onclick = function() {
                console.log('我是子函数' + a)
            }
        }
    </script>
</body>

这种方法不需要存储id,只需要在函数内部再套用一个函数,并且执行的时候将数据带进去

闭包定义

闭包是在另一个函数(称为父函数)中定义的函数,并且可以访问在父函数作用域中声明和定义的变量。
闭包可以访问3个作用域中的变量
  1、在自己作用域中声明的变量
  2、在父函数中声明的变量
  3、在全局作用域中声明的变量
最简单的闭包例子

  function f1(){
    n=999;
    function f2(){
      console.log(n);
    }
    return f2;
  }
  var result=f1();
  result(); // 999

闭包的作用

1.可以间接调用函数内部的局部变量。
2.可以让这些变量的值始终保持在内存中。(因此要注意不能滥用闭包)
3.可以暂存数据,给变量开辟私密空间,避免外部污染。
缺点就是会增加内存增加代码负担

相关文章

  • 浅谈js闭包

    一.作用域 var x = 0 //全局变量 x var y = 10 //全局变量 y var fun...

  • 浅谈JS的闭包

    今天写代码的时候碰到一个修改需求,有一列数据,可以删除,点击某条数据删除的时候会弹出自定义的模态确认框,并且带出该...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • JS闭包

    JS闭包 闭包练习

  • 浅谈闭包(js closure)

    原创声明 本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:笔名:来碗鸡蛋面简书主页:ht...

  • JS闭包问题(二)

    在之前的JS闭包问题(一)文章中大概介绍了一下JS闭包,同时讲了闭包与变量之间的问题,今天我们继续聊闭包,聊聊闭包...

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

  • JS闭包入门

    最近有看到朋友的面经里提到的JS闭包的问题,就想研究研究,以下是我对JS闭包的简单理解。 到底什么是JS闭包? 定...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

网友评论

      本文标题:浅谈JS的闭包

      本文链接:https://www.haomeiwen.com/subject/qrfhzctx.html