美文网首页
闭包作用

闭包作用

作者: EO_eaf6 | 来源:发表于2020-09-01 22:33 被阅读0次

闭包的作用:模仿块作用域、保存变量、封装私有变量
(1)模仿块作用域:通过构建立即执行函数

function create(count){
  (function(){
    for(var i=0;i<count;i++){
      console.log(i)
    }
  })
  alert(i)//报错,上面函数执行完,环境销毁
}

通过特权方法来访问(静态变量)私有变量和(静态方法)私有方法
在构造函数内部写特权方法,为每个实例绑定特权方法使之可以访问静态方法和变量

function Create(){
  var x=1
  //create私有方法
  function ss(){
    return false
  }
  //特权方法
  function Create(){
  var x=1
  //create私有方法
  function ss(){
    return false
  }
  //特权方法
  this.getX=function(){
    x++
    ss()
    return x
  }
}
var y=new Create()
var t=new Create()
console.log(y.getX())//2
console.log(t.getX())//2 每个实例都可以通过特权函数访问到Create的私有方法和变量,每个实例保存自己的引用不在原型上共享引用

在原型链上写特权方法,所有实例共享特权方法

(function create(){
  var x=1
  //create私有方法
  function ss(){
    return false
  }
  //构造函数
  Person=function(){//Person不能用var声明,不然在全局中访问不到
  }
  //特权方法
  Person.prototype.getX=function(){
    x++
    ss()
    return x
  }
})()//立即执行函数,初始化Person构造函数
var y=new Person()
var t=new Person()
console.log(y.getX())//2
console.log(t.getX())//3
y执行getX访问引用的x并+1保存
t执行getX访问引用的x并+1保存

两者区别:实力是否共享特权方法

相关文章

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • 作用域和闭包

    目录 概述 作用域编译过程词法作用域全局作用域函数作用域 闭包循环和闭包闭包的用途性能 总结 概述 作用域和闭包一...

  • js作用域、闭包

    闭包 闭包作用 全局 局部 作用域链

  • 如何理解闭包?

    1、定义: 嵌套在函数作用域中的函数,称为闭包函数。该作用域称为闭包环境。通过闭包函数可以访问闭包函数所在函数作用...

  • js闭包问题

    javascript 闭包的概念,闭包的作用,闭包经典面试题详解(配图解) 函数作用域(闭包前置知识) 要彻底弄懂...

  • javaScript门道之闭包

    闭包的学习路径:变量的作用域 -> 闭包的概念 ->闭包的应用 1.变量的作用域 变量的作用域分为作用于全局和作用...

  • 执行环境 & 作用域 & 闭包

    执行环境 & 作用域 & 闭包 执行环境 , 作用域 , 闭包 , 闭包应用 执行环境 执行环境定义了 当前环境的...

  • JS面试常见问题汇总

    1、闭包 什么是闭包? 闭包就是可以访问另一个函数作用域中的变量的函数。 闭包的作用域链包含着它自己的作用域,以及...

  • 闭包

    闭包是什么;闭包的作用;闭包的一些特点。 什么是闭包,简单的说就是函数嵌套函数(红宝书),在函数作用域内,可以访问...

  • 14.JS基础之作用域与闭包

    作用域: 全局作用域 函数作用域 块级作用域(ES6新增) 常见的闭包有:作为函数返回值的闭包与作为函数参数的闭包...

网友评论

      本文标题:闭包作用

      本文链接:https://www.haomeiwen.com/subject/dhrbsktx.html