美文网首页
关于闭包那些事儿

关于闭包那些事儿

作者: T_ttt | 来源:发表于2017-12-13 15:42 被阅读0次

本文作者:vicky    原文出处:http://www.mamicode.com/info-detail-500673.html

图片发自小瓶子的简书App

1.function 函数不仅可以调来调去,还可以作为值传来传去

2.scope 作用域 (块级作用域,基于函数的作用域)

清晰的讲述作用域http://www.jianshu.com/p/a7f9951f329a

函数作用域是function内 在es5 与es6中没有改变

块级作用域是在es6中体现的 if(){} while(){} 必须用let const 来声明变量,这样才能保证外部不访问块级中的变量(感谢作者 让我清晰的明白)

3.闭包 简单的说就是一个函数里嵌套这函数,闭包所保留的是整个变量对象。来看一个闭包经典案例

for(var i=1; i<=9; i++) {

   setTimeout(function timer(){

   console.log( i );

},1000);

}

执行结果 输出十次10 原因是 setTimeout是异步执行 ,setTimeout中的匿名function没有将 i 作为参数传入来固定这个变量的值, 让其保留下来, 而是直接引用了外部作用域中的 i, 因此 i 变化时, 也影响到了匿名function。若改为

for(let i=1; i<=9; i++) {

setTimeout(function timer(){

console.log( i );

},1000);

}

运用闭包

function Person(name) {

        function getName() {

           console.log( name );

 }

     return{

        getName: getName

      };

}

var   littleMing = Person( "fool");

littleMing.getName();


相关文章

  • 关于闭包那些事儿

    本文作者:vicky 原文出处:http://www.mamicode.com/info-detail-5006...

  • PHP 闭包那些事儿

    匿名函数 匿名函数,也叫闭包函数,说白了就是“没有名字的函数”,和一般函数结构一样,只是少了函数名以及最后需要加上...

  • 2019-03-25 js闭包和内存释放

    闭包的那些事儿 怎么写一个闭包闭包是什么就不解释了,直接写一个闭包函数: js中,函数是一等公民,定义一个函数f,...

  • 闭包介绍

    闭包 关于闭包的定义: A closure is the combination of a function an...

  • SwiftUI 里的 swift 闭包总结

    创建 UI 时的闭包使用 在 SwiftUI 里闭包出现的频率特别高,这里我重新梳理了下闭包的定义。 关于闭包 闭...

  • 闭包那点事儿

    >js变量的作用域 全局作用域(全局变量) : 在函数外面声明的变量 生命周期(变量从声明到销毁)...

  • JavaScript - 闭包

    理解 关于闭包 答案: 用arguments.callee和闭包实现的函数封装 应用 利用闭包实现自动递增计数

  • 闭包

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

  • 关于闭包

    闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达...

  • 关于闭包!!!

    写这篇文章时的心情是十分忐忑的,因为对于我们今天的主角:闭包,很多小伙伴都写过关于它的文章,相信大家也读过不少,那...

网友评论

      本文标题:关于闭包那些事儿

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