美文网首页JavaScript
JavaScript之闭包

JavaScript之闭包

作者: wsgdiv | 来源:发表于2020-12-09 00:39 被阅读0次

1、返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
2、如果一定要引用循环变量,方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:
3、功能。举例:

在面向对象的程序设计语言里,比如Java和C++,要在对象内部封装一个私有变量,可以用private修饰一个成员变量。

在没有class机制,只有函数的语言里,借助闭包,同样可以封装一个私有变量。我们用JavaScript创建一个计数器:

'use strict';

function create_counter(initial) {
    var x = initial || 0;
    return {
        inc: function () {
            x += 1;
            return x;
        }
    }
}

它用起来像这样:

var c1 = create_counter();
c1.inc(); // 1
c1.inc(); // 2
c1.inc(); // 3

var c2 = create_counter(10);
c2.inc(); // 11
c2.inc(); // 12
c2.inc(); // 13

在返回的对象中,实现了一个闭包,该闭包携带了局部变量x,并且,从外部代码根本无法访问到变量x。换句话说,闭包就是携带状态的函数,并且它的状态可以完全对外隐藏起来。

相关文章

  • JavaScript----闭包

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

  • 闭包

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

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

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

  • JavaScript之闭包

    闭包 闭包:可以用一个函数 去访问 另外一个函数的内部变量的方式 闭包传参

  • JavaScript之闭包

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

  • JavaScript之闭包

    从一个函数的实现说起 话说,我要写这么一个函数 getCallCounter , 该函数无参数,返回一个数字,第一...

  • JavaScript之闭包

    闭包 MDN面试官问我什么是闭包该如何回答廖雪峰博客-闭包阮一峰博客-闭包 个人理解 内部函数可以访问外部函数的作...

  • JavaScript之闭包

    1、返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。2、如果一定要引用循环变量,...

  • javascript之闭包

    什么是闭包(Closure)? 是指有权限访问另一个函数作用域中的变量的函数。概念看起来比较简单,有两个函数,子函...

  • JavaScript之闭包

    什么是闭包? 简言之,闭包是函数引用其周边状态(词法环境)绑在一起形成的(封装)组合结构。在JavaScript中...

网友评论

    本文标题:JavaScript之闭包

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