美文网首页
JavaScript闭包以及优缺点

JavaScript闭包以及优缺点

作者: HelloJames | 来源:发表于2018-03-13 11:46 被阅读34次

闭包是JavaScript的一大难点, 也是它的特色. 很多高级的应用需要依靠闭包来实现.

1. 变量作用域

要理解闭包, 首先要理解JavaScript的特殊的变量作用域.
变量的作用域无非就两种: 全局变量和局部变量.
JavaScript语言的特别之外在于: 函数内部可以直接读取全局变量, 但是在函数外部无法读取函数内部的局部变量

2.闭包的概念

闭包就是能够读取其他函数内部变量的函数
由于在JavaScript中, 只有函数内部的子函数才能读到局部变量, 所以说, 闭包可以简单理解成"定义在一个函数内部的函数".
所以, 在本质上, 闭包就是将函数内部和函数外部连接起来的桥梁.

3. 闭包的用途

闭包可以用在很多地方, 它的最大用处有两个: 一个是读取函数内部的局部变量, 另一个就是让这些变量的值始终内存中, 不会被自动清除掉.

4. 使用闭包的注意点

  1. 由于闭包会使得函数中的变量都被保存在内存中, 内存消耗很大, 所以不能滥用闭包, 否则会造成网页的性能问题, 在IE中可能导致内存泄露. 解决方法是, 在退出函数之前, 将不再使用的局部变量全部清除.
  2. 闭包会在父函数外部, 改变父函数内部变量的值, 所以, 如果你把父函数当作对象(object)使用, 把闭包当作它的公用方法, 把内部变量当成它的私有属性, 这时一定要小心, 不要随意改变父函数内部的值.

相关文章

  • JavaScript闭包以及优缺点

    闭包是JavaScript的一大难点, 也是它的特色. 很多高级的应用需要依靠闭包来实现. 1. 变量作用域 要理...

  • 2018-01-29

    什么是闭包?闭包的优缺点? 闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要...

  • 前端推荐

    JSDoc 有助于代码可读性参考 正则 正则表达式入门参考 什么是闭包及闭包的优缺点 参考 javascript中...

  • JavaScript----闭包

    javascript之闭包 闭包的概念     闭包(closure)是 JavaScript 的一种语法特性。 ...

  • JavaScript函数、this以及闭包

    JavaScript笔记(三) 函数 理解函数 Javascript函数的参数与大多数其他语言中的函数的参数不同。...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 【译】JavaScript进阶 从实现理解闭包

    来源于 现代JavaScript教程闭包章节中文翻译计划本文很清晰地解释了闭包是什么,以及闭包如何产生,相信你看完...

  • 什么是JavaScript闭包?闭包的优缺点?

    闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。 1、变量作...

  • JavaScript深入之闭包

    JavaScript深入系列第八篇,介绍理论上的闭包和实践上的闭包,以及从作用域链的角度解析经典的闭包题。 定义 ...

  • javascript函数,以及闭包的理解

    javascript函数,以及闭包的理解 深入理解javascript函数定义与函数作用域深入理解javascri...

网友评论

      本文标题:JavaScript闭包以及优缺点

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