码迷,mamicode.com
首页 > Web开发 > 详细

js闭包

时间:2018-09-04 19:14:36      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:如何   result   特殊   通过   情况下   方法   turn   return   func   

一、变量的作用域

Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。

另一方面,在函数外部自然无法读取函数内的局部变量。

  function f1(){
    var n=999;
  }

  alert(n); // error

二、如何从外部读取局部变量?

出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。

那就是在函数的内部,再定义一个函数。(在上面的例子当中,在函数f1外无法访问到变量n的值,如果想要在函数f1外访问到变量n的值,需在函数f1内再定义一个函数f2,那么f2是可以访问到变量n的值的,再将函数f2返回出去,通过这种方法,那么就在函数f1外可以访问到变量n的值了,这里的函数f2就是一个闭包)

 

 function f1(){

    n=999;

    function f2(){
      alert(n);
    }

    return f2;

  }

  var result=f1();

  result(); // 999

js闭包

标签:如何   result   特殊   通过   情况下   方法   turn   return   func   

原文地址:https://www.cnblogs.com/liankong/p/9586082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!