js閉包

來源:互聯網
上載者:User

標籤:如何   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閉包

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.