js 闭包解密

本文详细解析了JavaScript中闭包的概念,通过一个完整的闭包示例,解释了如何在一个函数内部创建另一个函数,并让其有权访问外部函数的作用域变量。闭包在实际编程中有着广泛的应用,是理解JavaScript高级特性的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闭包是一个在面试当中经常被问到的问题,在网上收罗的答案也是很难懂的,今天就给大家简单的解释一下什么是函数的闭包。

闭包是有权访问另外一个函数作用域中变量的函数,即在一个函数内部创建另一个函数。

我们将这个闭包作为创建对象的构造函数,这样它既是闭包又是可实例对象的函数。

var Book = (() => {
  //静态私有变量
  var bookNum = 0
  //静态私有方法
  function checkBook(num) {}
  //创建类
  function _book(newId,newName,newPrice) {
    //私有变量
    var name , price
    //私有方法
    function checkId(id) {}
    //特权方法
    this.getName = ()=>{}
    //公有属性
    this.id = id
    //公有方法
    this.copy = ()=>{}
    //构造器
    this.setName(name)
    this.setPrice(price)
  };
  //构建原型
  _book.prototype = {
    isJsBook :false,
    display :()=>{}
  };
  //返回类
  return _book;
})

 

这样就是一个完整的闭包。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值