美文网首页JavaScript学习笔记
JavaScript学习之闭包

JavaScript学习之闭包

作者: 小人物的秘密花园 | 来源:发表于2017-02-21 15:29 被阅读1次

参考

阮一峰

廖雪峰

闭包

变量作用域

限定变量的使用范围,就像是对于一个SAP的产品不同的角色有不同的使用权限;

全局变量

不受作用域范围的影响,可在作用域外访问,也可以在作用域内访问;

图1

局部变量

只能在特定的作用域范围内访问(函数内部);

图2

Note:在作用域(函数内)中声明局部变量要使用关键字var,反之该变量是全局变量;


图3

闭包的定义

外部函数访问一个函数内部变量的函数(局部变量能在它的作用域之外被访问),例如SAP中的RFC(remote function call)外部系统访问SAP内部数据的过程;--在一个函数内部封装一个子函数来存储局部变量,并返回该函数,一遍能在外部访问局部变量;

JavaScript链式作用域

子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立。(引自阮一峰

闭包实现的机理

基于链式作用域的概念,将某个局部变量存储在一个内部函数(可以访问父层函数中的局部变量)中,并将该函数作为函数的返回只值;即可实现 从外部读取内部变量;

图4

闭包的作用

实现局部变量的跨域(从变量作用域之外来访问该局部变量);

缓存局部变量;

相关文章

  • JavaScript----闭包

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

  • 闭包

    学习Javascript闭包(Closure)

  • JavaScript深入理解-闭包(Closure)

    推荐文章:学习Javascript闭包(Closure)- 阮一峰javascript深入理解-从作用域链理解闭包...

  • JavaScript学习之闭包

    参考 阮一峰 廖雪峰 闭包 变量作用域 限定变量的使用范围,就像是对于一个SAP的产品不同的角色有不同的使用权限;...

  • JavaScript学习之闭包

    闭包的概念 举个例子: 闭包的好处 可以读取函数内部的变量 可以让变量是始终保存在内存中,比如:单例 var Si...

  • 笔记:JavaScript闭包

    本文摘录及参考自:1. 学习Javascript闭包(Closure)2. 闭包的秘密3. JavaScript ...

  • avaScript 闭包的理解

    JavaScript 学习笔记之闭包 这篇文章是我学习闭包的笔记与总结,后面会有一些例子,结合画图的形式来理解,什...

  • 闭包

    原文出处 JavaScript深入之闭包 定义 MDN 对闭包的定义为: 闭包是指那些能够访问自由变量的函数。 那...

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

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

  • swift闭包学习

    闭包作为参数 参考 Swift学习之闭包

网友评论

    本文标题:JavaScript学习之闭包

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