美文网首页
javascript中的闭包

javascript中的闭包

作者: 哔哔_fc39 | 来源:发表于2019-03-31 23:35 被阅读0次

闭包

基本概念

当<em>内部函数</em>被保存到<em>外部</em> 时,将会一定生成闭包。闭包会导致原有作用域链不释放,造成内存泄露。

闭包的作用

  • 1.实现共有变量
function add (){
    var count =0;
    function demo () {
        count++:
        console.log(count);
    }
    return demo;
}
var counter = add();
counter();
counter();
counter();--------会一直执行
  • 2.可以做缓存
function eater () {
    var food = "";
    var obj  = {
        eat:function () {
            console.log('i am eat ' + food)
            food="";
        },
        push:function(myFood){
            food = myFood;
            //是food,不用this.food
        }
    }
    return obj;
}
var e = eater();
e.push("apple");
e.eat();
  • 3.私有化变量
//利用闭包,实现变量私有化    
function Deng (name,wife){
    var prepareWife = "xiaozhang";
    this.name= name;
    this.wife = wife;
    this.divorce =function(){
        this.wife=prepareWife;
    }
    this.changeWife = function(target){
        prepareWife=target;
    }
    this.sayPrepareWife =function(){
        console.log(prepareWife);
    }
var deng = new Deng("deng","xiaoli");
console.log(deng.prepareWife);//undefined
  • 4.命名空间:模块化开发,防止变量冲突(补充)
  • 管理变量,防止污染全局,适用于模块化开发
var init = (function(){
    var abc =123;
    //利用闭包实现变量私有化。
    function callName (){
         console.log(name);
    }
    return function(){
        callName();
    }
}())
init();//init启动时,就会启动callName

相关文章

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

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

  • javascript中闭包是什么

    javascript中闭包是什么 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。闭包就...

  • JavaScript 闭包问题

    1.闭包的概念 JavaScript中什么是闭包?首先我们要知道在JavaScript中,函数中声明变量函数外是无...

  • JavaScript 中 闭包 的详解

    闭包是什么 在 JavaScript 中,闭包是一个让人很难弄懂的概念。ECMAScript 中给闭包的定义是:闭...

  • JavaScript 中的闭包

    闭包是什么 在 JavaScript 中,闭包是一个让人很难弄懂的概念。ECMAScript 中给闭包的定义是:闭...

  • JavaScript----闭包

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

  • JavaScript闭包的理解

    前言 在JavaScript中,闭包对于JavaScript的意义无异于指针在c++中的意义。理解闭包是我们掌握J...

  • js经典题目

    1闭包 链接:学习Javascript闭包(Closure) setTimeout在js单线程中只是放在队列中并未...

  • JavaScript之理解闭包

    一个简单的闭包 例1 理解闭包 闭包是指在 JavaScript 中,内部函数总是可以访问其所在的外部函数中声明的...

  • 你不可不知道的 JavaScript 作用域和闭包

    原文出处:JavaScript Scope and Closures 作用域和闭包是 JavaScript 中重要...

网友评论

      本文标题:javascript中的闭包

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