js中闭包的作用及用法

闭包是什么

闭包:定义在一个函数内部的函数



前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、闭包是什么

闭包:定义在一个函数内部的函数

二、闭包的作用

1.可以访问父函数的变量
2.可以锁住父函数的变量

闭包的本质

1.父函数的作用域成为永恒作用域

闭包涉及到的作用域问题

1.全局作用域:在全局声明的变量,在任何作用域都有效,是浏览器打开时创建,关闭时销毁
2.局部作用域:在局部声明的变量,在局作用域内有效,变量声明时创建,调用结束后销毁。

1.闭包的第一个作用,访问父函数中的变量

代码如下(示例):

   var num = 10
   console.log(num);//10
   function fn() {
       var str = 'abc'
       console.log(num);//10,全局
       console.log(str);//abc,局部
   }
   fn()//调用后才能发挥作用
   // console.log(str);
   function fn_1() {
       console.log(num);//10
       console.log(str);//拿不到,str未定义
   }
   fn_1()//调用

2.闭包的第二个作用

代码如下(示例):

   var btn = document.getElementById('btn')
   // console.log(btn);
   btn.onclick = function () {
       var count = 0;
       return function () {//闭包
           count++
           btn.innerHTML = `点赞(${count})`//通过点击事件,不断地调用return语句
           // 中的函数,并将调用一次累加一次,然后将值赋给btn中的value
           // 而其中也体现了闭包的第二个作用,即将父函数中的变量锁住
           // console.log(this);
           // }()
       }
       // console.log(this);
   }()

可以达到点赞的效果


总结

1.闭包经常搭配多种情况出现问题,具体情况需要具体分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值