美文网首页
JS闭包入门

JS闭包入门

作者: dann_summer | 来源:发表于2016-09-26 22:03 被阅读0次

最近有看到朋友的面经里提到的JS闭包的问题,就想研究研究,以下是我对JS闭包的简单理解。

到底什么是JS闭包?

定义:闭包是指那些能够访问独立(自由)变量的函数 (变量在本地使用,但定义在一个封闭的作用域中)。换句话说,这些函数可以“记忆”它被创建时候的环境。摘自MDN

定义看懂了吗?反正我没懂T_T。
好吧,闭包其实是一种特殊的对象,这个对象由函数和创建这个函数的环境组成,而这种对象可以让外部函数访问到局部函数内的变量。

来个栗子:
function makeFunc() { 
   var name = "Wangxiaoming"; 
   function displayName() {    
      console.log(name);  
  } 
 return displayName;
}
var myFunc = makeFunc();
myFunc();

在这里myFunc就成了一个闭包,这个闭包由displayName()和字符串“Wangxiaoming”组成。
到这里你可能还是不能明白什么是闭包,那让我们来看看为什么会有闭包。

为什么会有闭包?

说到闭包就一定会说道作用域的问题,在JavaScript中函数内部可以直接读取全局变量,而函数外部不能读取函数内部的局部变量。那如果我们想要在函数外部访问某一函数内部的值岂不是不能访问?这样不科学~
所以JS才有了闭包。

好吧,第一次写,先分享到这里啦,看了两天的闭包,就只理解到这里了,以后有更多理解的话会继续分享的~

相关文章

  • JS闭包入门

    最近有看到朋友的面经里提到的JS闭包的问题,就想研究研究,以下是我对JS闭包的简单理解。 到底什么是JS闭包? 定...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • JS闭包

    JS闭包 闭包练习

  • JS闭包问题(二)

    在之前的JS闭包问题(一)文章中大概介绍了一下JS闭包,同时讲了闭包与变量之间的问题,今天我们继续聊闭包,聊聊闭包...

  • JS闭包大结局(JS闭包系列3)

    在上一篇中再谈JS闭包(JS闭包系列2),我详细的介绍了JS中的变量作用域相关的概念,结合第一节关于JS闭包(JS...

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

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

  • (转)js闭包初入门

    先看一段JS代码:functiona(){ varnum = 0; functionb(){num++;conso...

  • js闭包--基础篇(入门)

    闭包:简单来说就是将内容封闭起来,外界无法访问. 闭包技术: 作用域规则:内层的作用域可以访问外层的作用域,但是反...

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

  • 简单的聊一下闭包

    js中的闭包 闭包是学习js中永远也绕不过去的一个坎,那么,今天我们就去一段简单的代码开始聊一聊闭包 什么是闭包 ...

网友评论

      本文标题:JS闭包入门

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