javascript函数闭包(closure)

一,首先感觉下javascript函数的闭包javascript

 

二,闭包java

1,定义:闭包就是可以读取其余函数内部变量的函数,因为在javascript语言中,只有在函数内部的子函数才可以读取局部变量,所以能够把闭包简单的理解成:定义在一个函数内部的函数,简而言之,闭包起到了将函数内部与函数外部链接起来的桥梁做用浏览器

2,做用:1,能够读取函数内部的变量;2,可让这些变量的值始终保存在内存中闭包

3,注意点:1,首先由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,因此咱们不能滥用闭包,不然会对网页性能形成影响。在ie浏览器中可能会出现内存泄露。解决方法是在退出函数前将不使用的局部变量所有删除函数

      2,闭包会在父函数外部改变父函数内部变量的值。因此,若是你把父函数看成对象使用,把闭包当作它的公共方法,把内部变量看成它的私有属性。这时要注意不可以随便改变父函数内部变量的值。性能

 

三:练习this

  var name = "The Window";对象

  var object = {
    name : "My Object",blog

    getNameFunc : function(){
      return function(){ip

        return this.name;

      };

    }

  };

  alert(object.getNameFunc()());

弹出 “the window”  由于此时的this指向的是浏览器window对象

 

  var name = "The Window";

  var object = {
    name : "My Object",

    getNameFunc : function(){
      var that = this;
      return function(){

        return that.name;
      };

    }

  };

  alert(object.getNameFunc()());

弹出 “my object”  由于此时this指向的是当前的object对象

相关文章
相关标签/搜索