国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談js中的閉包

kumfo / 1634人閱讀

摘要:對于一個個剛剛接觸前端的新手,天天聽人講閉包,聽的那個高大尚,心中對各位技術大佬是那個的膜拜,于是做為前端菜鳥的我,就去了解了傳說中的閉包。

對于一個個剛剛接觸前端的新手,天天聽人講閉包,聽的那個高大尚,心中對各位技術大佬是那個的膜拜,于是做為前端菜鳥的我,就去了解了傳說中的閉包。

何為閉包?
通俗易懂的講,就是可以調用函數內部的變量和方法

舉例說明如下:

     function test(){
           var x = 1;
           var y = 2;
           function func1(){
               x++;
               console.log("x:"+x);
           }

           function func2(){
               y++;
               console.log("y:"+y);
           }

            func3 = function(){
               console.log("x+y:"+(x+y));
           }

           return {
               func1:func1
           }
       }

       var obj1 = test();
       obj1.func1();//輸出x:2
       obj1.func1();//輸出x:3
       func3();//輸出x+y:5

       var obj2 = test();
       obj2.func1();//輸出x:2
       obj2.func1();//輸出x:3
       obj2.func1();//輸出x:4
       func3();//輸出x+y:6

       obj1.func1();//輸出x:4
       func3();//輸出x+y:6

解析:你可以把test理解成一個對象,首先建立一個obj1對象,這個時候調用obj1.func1()時,test中的x會被累加,這個就是閉包的一個特點,就是外部可以改變函數內部的變量值,這里要記住一點,只有在test中return返回的函數在外部才能被調用,如果此時調用obj1.func2()會提示出錯的,只有跟func1一樣在return中返回才能被外部調用;func3可以理解為公有的函數,但是只有在聲明完test之后才能被調用,因為func3第一次定義是在test中定義的,所有要先test()之后才能被調用;obj2是新建立的一個對象,此時的obj1和obj2兩個對象是互不干擾的,各自疊加,這也是閉包的一個特性,可以用在以后建立多個計時器時使用閉包,事半功倍;這里要特別強調一下func3這個函數,第一個func3調用的是對象obj1中的func3,而當obj2新對象聲明之后,func3調用的就是obj2中的func3了

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84528.html

相關文章

  • 云天視角-淺談閉包

    摘要:函數在執行的時候執行函數,將當前的變量對象由于當前的環境是函數,所以將其活動對象作為變量對象添加到作用域鏈的前端。此時,由于在執行,而作用域鏈也存在,所以可以在作用域鏈上進行查找,去訪問的變量。 一、現狀 閉包是jser繞不過的坎,一直在都在說,套用 simpson 的話來說:JavaScript中閉包無處不在,你只需要能夠識別并擁抱它。 閉包是基于詞法作用域書寫代碼時的自然結果,你甚...

    nanfeiyan 評論0 收藏0
  • 淺談js內存與閉包

    摘要:將他們放在堆中是為了不影響棧的效率。接著是臨時空間函數執行的時候,會臨時開辟一塊內存空間,這塊內存空間長得和外面這個一樣,也有自己的棧堆,當函數運行完就銷毀。中的內存第一個部分還是和上面的一樣,有棧堆運行時環境,另外還有一個緩沖區存放。 0.前言 主要結合了內存的概念講了js的一些的很簡單、但是又不小心就犯錯的地方。結論:js執行順序,先定義,后執行,從上到下,就近原則。閉包可以讓外部...

    dailybird 評論0 收藏0
  • 淺談JavaScript中的閉包

    摘要:在內部,理所當然能訪問到局部變量,但當作為的返回值賦給外的全局變量時,神奇的事情發生了在全局作用域中訪問到了,這就是閉包。而閉包最神奇的地方就是能在一個函數外訪問函數中的局部變量,把這些變量用閉包的形式放在函數中便能避免污染。 一、閉包是什么? 《JavaScript高級程序設計》中寫道:閉包是指有權訪問另一個函數作用域中的變量的函數,如果用下定義的觀點看,這句話就是說閉包是函數,我...

    Riddler 評論0 收藏0
  • 淺談reacthooks閉包陷阱

      本文不會過多講解基礎知識,更多說的是在使用useRef如何能擺脫 這個 閉包陷阱 ?  react hooks 的閉包陷阱 基本每個開發員都有遇見,這是很令人抓狂的。  (以下react示范demo,均為react 16.8.3 版本)  列一個具體的場景:  functionApp(){   const[count,setCount]=useState(1);   useEffect(()=...

    3403771864 評論0 收藏0
  • 淺談Javascript閉包和匿名函數【1】

    摘要:我們可以用普通函數內部嵌套匿名函數,形成一個閉包來使變量駐留在內存中。局部變量閉包為什么要將賦值給變量呢這里我們就要談到匿名函數調用問題匿名函數如何調用還是上面的例子會將整個函數體打印出來這樣才調用了函數內部的匿名函數看到這里。 閉包含義: 閉包是指有權訪問另一個函數作用域中的變量的函數,創建閉包的常見的方式,就是在一個函數內部創建另一個函數,通過另一個函數訪問這個函數的局部變量。 這...

    cyqian 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<