js 闭包解密

2 篇文章 0 订阅

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

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

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

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值