美文网首页前端
JS--闭包、定时器

JS--闭包、定时器

作者: _fin | 来源:发表于2016-08-04 19:01 被阅读123次

什么是闭包? 有什么作用?

  • 闭包是指有权限访问另一个函数作用域的变量的函数(就是能够读取其他函数内部变量的函数)。创建闭包的常见方式就是在一个函数内部创建另一个函数即内部函数。
    当内部函数“在定义它的作用域”的外部被引用时,就创建了该内部函数的闭包,如果内部函数引用了位于外部函数的变量,当外部函数调用完毕后,这些变量在内存不会被释放,因为闭包需要它们。
    function f1(){
    n=999;
    function f2(){ // f2函数,就是闭包。
    alert(n); // 在Javascript语言中,只有函数内部的子函数才能读取局部变量。
    } // 可以把闭包简单理解成“定义在一个函数内部的函数”。
    return f2;
    }
    var result=f1();
    result(); // 999
    // 闭包可以简单理解成“定义在一个函数内部的函数”。

本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

  • 闭包的作用
    1.可以读取函数内部的变量;
    2.让这些变量的值始终保持在内存中(在函数a执行完并返回后,闭包使得Javascript的垃圾回收机制GC不会收回a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量)。

javascript深入理解js闭包
什么是闭包,我的理解

setTimeout 0 有什么作用?

setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。即延时指定的毫秒数再执行指定代码。

setTimeout(function(){ //延时1000毫秒后执行的代码       
console.log('延时1s执行');}, 1000);

var clock;clock = setTimeout(function(){
console.log('延时3s开始执行')
}, 3000);
clearTimeout(clock);
// 如果要取消timeout,需要保存setTimeout的返回值,用clearTimeout取消掉这个返还值。
//clearTimeout()方法用于停止执行setTimeout()。

代码

下面的代码输出多少?修改代码让 fnArr[i]() 输出 i。使用 两种以上 的方法
var fnArr = [];
for (var i = 0; i < 10; i ++) { 
  fnArr[i] = function(){ return i; 
  }; 
} 
console.log( fnArr[3]() ); // 10

方法一

方法二

相关文章

  • JS--闭包、定时器

    什么是闭包? 有什么作用? 闭包是指有权限访问另一个函数作用域的变量的函数(就是能够读取其他函数内部变量的函数)。...

  • 前端(数组,闭包,定时器)

    数组 定时器 定时器弹框 定时器的基本用法 定时器动画 闭包 闭包存循环的索引值 闭包做私有变量计数器 闭包做选项卡

  • js--闭包

    当在函数内部定义了其他函数时,就创建了闭包。 在后台执行环境中,闭包的作用域链包含着它自己的作用域、外部函数的作用...

  • JS--闭包(一)

    闭包:是指有权访问另一个函数作用域中的变量的函数。 创建闭包的常见方式,是在一个函数内部创建另外一个函数: 如上,...

  • JS--闭包(二)

    这里我们根据之前介绍的闭包延伸一下其他的知识点。 在闭包中,其保存的是整个变量对象。闭包只能取得包含函数中任何变量...

  • 再学JS--闭包

    MDN对闭包的定义: 闭包是指那些能够访问自由变量的函数 那什么是自由变量? 自由变量是指在函数中使用的,但既不是...

  • 前端基础(问答15)

    keywords: 闭包、定时器。 什么是闭包? 有什么作用 内层函数调用外层函数的变量,该内层函数即为闭包。本质...

  • 2018-12-08

    定时器的基本用法 定时器动画 时钟 倒计时 变量的作用域 封闭函数 用变量的方式定义函数 闭包 闭包存循环的索引值

  • js--闭包概念详解

    关于闭包,简而言之,每个函数都是一个闭包,闭包就是一个私有的空间。函数里面定义的变量和方法等都在这个私有空间中,外...

  • 前端(十四)

    1.循环语句 2.数组去重 3.字符串反转 4.定时器的基本用法 5.定时器动画 6.时钟 7.闭包 8.闭包存循...

网友评论

    本文标题:JS--闭包、定时器

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