目录

一、作用域和作用域链

二、闭包

三、无意间共享环境[可以通过闭包解决]

代码一

结果一

代码二

结果二

代码三

结果三


一、作用域和作用域链

当函数声明的时候,函数会通过内部属性[scope]来记录创建范围

二、闭包

什么是闭包:闭包是一个函数加上到创建函数的作用域的连接,闭包“关闭”了函数的自由变量。

第一句话(得到的理解):2个函数,2个函数作用域[scope]还要连接上;
第二句话(得到的理解):关闭函数的变量自由:它暂时不会销毁;

三、无意间共享环境[可以通过闭包解决]

代码一

var str = '123';function fn(){var str = '456';console.log( str );
}fn();

结果一

代码二

function fun(n){return function(m){n+=m;return n;} }//第一步
var f = fun(5);
//第二步console.log(  f(1)  );console.log(  f(1)  );console.log(  f(1)  );

结果二

代码三

var lis = document.getElementsByTagName('li');for(var i=0;i<lis.length;i++){(function(){var idx = i;lis[i].onclick = function(){console.log(idx);}})();}

结果三

前端小知识点(6):听了好多闭包,这次可能最懂相关推荐

  1. 前端小知识点(4):JS 运行机制和存储

    目录 被忽视的内存管理 JS工作原理 JS代码如何运行 JavaScript内存的生命周期 栈内存.堆内存 代码案例 运行结果 被忽视的内存管理 JavaScript不像C.C++等语言--程序员必须 ...

  2. 前端小知识点(10):原型链

    目录 原型链 : 代码1 运行结果1 代码二 运行结果2 原型链 : 每一个对象都有一个原型(__proto__),这个原型还可以拥有自己的原型,形成最终的原型链. 查找一个对象特定的属性或者方法,我 ...

  3. 前端小知识点(9):函数和对象之间的关系

    目录 函数与对象之间的关系 代码演示 运行结果 函数与对象之间的关系 函数 有什么 : 函数也是对象          函数有:prototype 对象 有什么 对象:__proto__ 原型对象里面 ...

  4. 前端小知识点(8):作者为什么设计原型

    目录 一.从古代说起 二.Brendan Eich的选择 三.new运算符的缺点 四.prototype属性的引入 五.总结 六代码部分 一.从古代说起 要理解Javascript的设计思想,必须从它 ...

  5. 前端小知识点(7):正则前瞻

    目录 一.js中的正则表达式,只有前瞻没有后顾        正向前瞻:(?=) ===>匹配符合的 代码1 结果1 代码2 结果2 一.js中的正则表达式,只有前瞻没有后顾           ...

  6. 前端小知识点(3):JavaScript 单线程

    目录 一.为什么 JavaScript 是单线程? 二.JavaScript是单线程,怎样执行异步的代码? 三.事件循环机制 四.代码1 五.结果1 六.代码2 七.结果2 一.为什么 JavaScr ...

  7. 前端小知识点(2):普通字符串和new String有什么区别

    目录 一.其实不仅字符串 二.那么到底为什么? 三.代码案例 四.运行结果 一.其实不仅字符串 var str = 'abc'; typeof str ===> string //他不是对象,可 ...

  8. 前端小知识点(1):undefined和null区别

    目录 一.奇怪点 二.历史原因 三.具体区别 四.代码演示 五.运行结果 一.奇怪点 有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null. ...

  9. 【转载】前端小知识点---html换行被解析为空格的相关知识

    html换行被解析为空格也是常说的3像素空隙的问题,根据测试不同浏览器产生的空隙大小会不一样,Chrome,Firefox,IE8+都存在这样的问题,这个问题的原因相比大家都知道,浏览器把换行解析成了 ...

最新文章

  1. 修身论文2000字_那些没能写出毕业论文的博士生,究竟是败在了哪里?
  2. 完整iOS APP发布App Store上架流程
  3. _Linux安装软件方法总结
  4. 从前序与中序遍历序列构造二叉树—leetcode105
  5. 牛客小白9 换个角度思考(离线+树状数组)
  6. rails online api
  7. 洛谷P2851 [USACO06DEC]最少的硬币The Fewest Coins(完全背包+多重背包)
  8. 客户端级别的渲染分析工具 dynaTrace
  9. 【UOJ139】【UER #4】被删除的黑白树
  10. 新建项目虚拟环境及pycharm配置
  11. 181108每日一句
  12. 显卡对应的Compute Capability值
  13. C语言确定某年星期六,c语言 怎么算某年某月某日是星期几啊?
  14. LATEX插入参考文献(两种方法)
  15. 《因子投资 - 方法与实践》新书上市
  16. 【物联网】物联网项目之北向接口与南向接口
  17. 【2017级面向对象程序设计】第3、4次成绩及排名
  18. gfp 通用成帧程序 帧结构 校验 crc 多项式 加扰
  19. 常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
  20. skype 无法更新安装

热门文章

  1. mongdb 群集_群集文档的文本摘要
  2. leetcode51. N 皇后(回溯算法)
  3. leetcode面试题 08.08. 有重复字符串的排列组合(回溯)
  4. leetcode103. 二叉树的锯齿形层次遍历(bfs)
  5. react组件生命周期_React组件生命周期-挂钩/方法介绍
  6. react jest测试_如何使用Jest和react-testing-library测试Socket.io-client应用程序
  7. 引入 javascript_在您JavaScript项目中引入类型安全性? 再想一想
  8. 微软大数据_我对Microsoft的数据科学采访
  9. Dart编程语言入门
  10. 词频统计预处理之综合练习