美文网首页
什么是闭包,闭包的用途是什么?

什么是闭包,闭包的用途是什么?

作者: vousmevoyezLi | 来源:发表于2019-02-26 10:11 被阅读0次

闭包是由函数和函数内部能访问到的变量组成的,在js中函数内部可以直接读取全局变量,而当我们想要得到函数内局部变量的时候,就需要在函数的内部再定义一个函数,并把子函数作为函数返回值返回出去,那么父函数就可以说使用子函数内的局部变量,如以下代码,f1函数就可以读取f2函数内的局部变量

function f1(){

    var n=999;

              function f2(){

              alert(n); }

    return f2;

  }

  var result=f1();

  result(); // 999

假设我们在做一个游戏,在写其中关于「还剩几条命」的代码。

如果不用闭包,你可以直接用一个全局变量:

window.lives = 30 // 还有三十条命

这样看起来很不妥。万一不小心把这个值改成 -1 了怎么办。所以我们不能让别人「直接访问」这个变量。怎么办呢?

用局部变量。

但是用局部变量别人又访问不到,怎么办呢?

暴露一个访问器(函数),让别人可以「间接访问」。

代码如下:

!function(){  var lives = 50 

 window.奖励一条命 = function(){    

lives += 1  } 

 window.死一条命 = function(){   

 lives -= 1  }

}()

闭包的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会被垃圾回收。

相关文章

  • 前端常见问题总结

    什么是闭包?闭包的用途是什么?闭包的缺点是什么? 什么是闭包 闭包:内部函数总是可以访问其所在的外部函数中声明的参...

  • 闭包、call-apply-bind 的用法 、HTTP状态码

    一、什么是闭包?闭包的用途是什么?闭包的缺点是什么? 答 :1、什么是闭包:如果一个函数用到了外部的变量,那么这个...

  • 闭包,call、apply、bind 的用法,HTTP 状态码

    什么是闭包?闭包的用途是什么?闭包的缺点是什么?• 闭包:如果一个函数用到了外部的变量,那么这个函数加这个变量就叫...

  • 闭包的理解

    什么是闭包,闭包的用途是什么? 闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部...

  • 闭包的总结

    围绕:闭包是什么?闭包的用途有哪些?闭包的缺点是什么? 这三个问题来进行总结 一、何为闭包?如果一个函数用到了外部...

  • 什么是闭包?闭包的用途是什么?

    什么是闭包: 如果一个函数用到了它作用域外面的变量,那么这个变量和这个函数之间的环境就叫闭包。 闭包的用途有些什么...

  • 什么是闭包?闭包的用途是什么?

    闭包的概念: 闭包是指有权访问另一个函数作用域中的变量的函数。如以下代码: 在outside函数内部定义的函数in...

  • 什么是闭包,闭包的用途是什么?

    什么是闭包? 闭包:如果一个函数使用了它范围外的变量,那么 这个函数+这个变量 就是闭包。 这函数 最后 输出的 ...

  • 什么是闭包,闭包的用途是什么?

    闭包是由函数和函数内部能访问到的变量组成的,在js中函数内部可以直接读取全局变量,而当我们想要得到函数内局部变量的...

  • 闭包的理解

    闭包目的: 闭包三个特性: 闭包的用途: 闭包的优点: 闭包的缺点: 参考文献: https://zhuanlan...

网友评论

      本文标题:什么是闭包,闭包的用途是什么?

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