对闭包的看法,为什么要用闭包, 闭包的原理以及应用场景以及闭包的 this 指向问题

闭包在JavaScript中扮演重要角色,它允许外部访问内部变量、保持局部状态,并实现模块化。闭包原理在于,即使函数执行完毕,内部变量依然存在。常见应用场景包括返回函数、函数赋值、函数参数、IIFE等。闭包的this指向问题可能造成困惑,如在匿名函数中,this通常指向全局对象。为解决这一问题,可以通过保存上下文、使用apply或bind方法来调整this指向。
摘要由CSDN通过智能技术生成

闭包的作用:

  1. 在外部访问函数内部的变量
  2. 让函数内的局部变量可以一直保存下去
  3. 模块化私有属性和公共属性

闭包的原理:

全局变量生存周期是永久,局部变量生存周期随着函数的调用介绍而销毁。
闭包就是 在函数中定义且成为该函数内部返回的函数的自由变量 的变量,该变量不会随着外部函数调用结束而销毁。
(注:不光是变量,函数内声明的函数也可以形成闭包)
当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包。

闭包的应用场景:

// 1. 返回值 最常见的一种形式

var fun_1 = function () {
  var name = "limo";
  return function () {      
    return name;
  }
}
var fun_1 = function () {
  var name = "limo";
  return name;
}
var fu_1 = fun_1();
console.log("fu_1():" + fu_1());

// 2. 函数赋值 一种变形的形式是将内部函数赋值给一个外部变量

var f2;
var fun_2 = function () {
  var name = "limop"
  var a = function () {
    return name;
  }
  f2 = a;
}
f2();
console.log(f2);

// 3. 函数参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃囍囍丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值