JavaScript面向对象方面的知识

闭包

1. 函数里面嵌套函数,可以多层嵌套,返回值为函数

2.内部函数可以调用外部函数的内容 作用域链

3.里面的参数和变量不会被垃圾回收机制回收

闭包案例

function fn(a){

//参数a 这个参数a是不会被销毁的(坏处:内存占用)

return function(){

console.log(a)

}

}

console.log(fn("hello")); //调用外部函数 (好处:内部的变量不会被外部污染)

//好处

1.内部的函数可以访问外部的内容

2. 外部不能访问内部函数的变量

2.1 优点,保证内部函数变量的私有性(不会被外部内容污染)

2.2缺点 一直保持对这个变量的引用(效率低)

3.里面的变量和参数不会被垃圾回收机制回收

3.1 优点 可以作为缓存

3.2 缺点 占用内存

闭包的应用案例

防抖

在一定时间内进入执行的函数 会被忽略掉只剩一个(避免函数重复调用)

应用场景 表单输入验证 等我有段时间没输入他就会验证

wait 区间内执行一次

function antishake(func,wait){//传入参数 为执行的方法 间隔的时间
    let timer = null //声明延时器对象为空
    return function(){
        clearTimeout(timer) //清除延时器
        timer = setTimeout(()=>{//延时器调用
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值