国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 內(nèi)存角度理解回調(diào)函數(shù)

            內(nèi)存角度理解回調(diào)函數(shù)

            來源:千鋒教育
            發(fā)布人:wjy
            時(shí)間: 2022-06-02 11:31:00 1654140660

            關(guān)于回調(diào)函數(shù)對(duì)于初學(xué)者來說是個(gè)比較難以理解的知識(shí)點(diǎn)。本文以內(nèi)存(只以堆棧)的角度來理解回調(diào)函數(shù)

            變量的內(nèi)存情況

            在js中數(shù)據(jù)類型的劃分可以分為基本類型與引用類型。兩種類型在內(nèi)存中的表現(xiàn)形式是不一樣的

            內(nèi)存角度理解回調(diào)函數(shù)

            1、基本類型

            ```js
            //棧區(qū)創(chuàng)建一個(gè)變量 記錄的值為10
            var num = 10;
            //棧區(qū)創(chuàng)建一個(gè)n變量 并且賦值為num變量的值
            var n = num;
            //將棧區(qū)n變量的值修改為20
            n = 20;

            console.log(num)
            ```

            1

            2、引用類型

            ```js
            //棧區(qū)創(chuàng)建一個(gè)arr變量 將具體的元素值保存到堆區(qū)  并且在arr變量中的值記錄為堆區(qū)的地址
            var arr = [1,2];
            //棧區(qū)創(chuàng)建一個(gè)newArray的變量 并且將 arr在棧區(qū)存儲(chǔ)的地址賦值給newArray
            var newArray = arr;
            //順著newArray記錄的地址值修改數(shù)據(jù)
            newArray[0] = 100;
            console.log(arr);// [100,2]
            ```

            2

            函數(shù)的情況

            函數(shù)也是一種引用類型,所以創(chuàng)建一個(gè)函數(shù)就與創(chuàng)建數(shù)組在內(nèi)存的情況類似,當(dāng)創(chuàng)建一個(gè)函數(shù)時(shí),會(huì)在棧區(qū)創(chuàng)建一個(gè)變量,然后將函數(shù)代碼相關(guān)的信息存儲(chǔ)到堆區(qū),最后將堆區(qū)的地址賦值給棧區(qū)的變量保存

            ```js
            function fn(){
                console.log('fn')
            }
            // 創(chuàng)建函數(shù) 就是創(chuàng)建了一個(gè)函數(shù)名稱的同名變量。并且值指向"堆區(qū)”的地址(聲明式與賦值式一致).在堆區(qū)中會(huì)保存代碼片段相關(guān)的信息
            //上面的代碼等價(jià)于 var fn = function(){consoel.log('fn')}
            console.log(fn)

            // 當(dāng)函數(shù)調(diào)用時(shí),系統(tǒng)可以通過"變量名稱/函數(shù)名稱" 找到函數(shù)代碼在堆區(qū)的地址。也就是可以改寫形式為“內(nèi)存地址()”,()就是表示要將代碼運(yùn)行起來
            fn()
            ```

            3

            自調(diào)用匿名函數(shù)

            ```js
            (function(){
                console.log('123456')
            })();
            /*

             function(){
                 console.log('123456')
             }
             就是一個(gè)函數(shù)表達(dá)式,本身就可以得到一個(gè)內(nèi)存地址   例如該內(nèi)存地址等于0X111 ,內(nèi)存地址中存儲(chǔ)著函數(shù)的代碼信息
             所以上面的代碼可以理解為(0X111)() 這種形式,這種形式與 賦值式的函數(shù)時(shí)是一直 所以最后可以調(diào)用函數(shù)
             
            */
            ```

            回調(diào)函數(shù)

            回調(diào)函數(shù)就是將函數(shù)作為作為另外一個(gè)函數(shù)調(diào)用的參數(shù)進(jìn)行傳遞。其本質(zhì)也只是傳遞了一個(gè)內(nèi)存地址

            1、函數(shù)參數(shù)傳遞引用類型

            ```js
            function fn(a){
                //3、當(dāng)函數(shù)調(diào)用時(shí) 會(huì)隱藏的進(jìn)行 var a = arr的操作 所以將arr變量存儲(chǔ)的地址賦值給了a變量  所以a就是一個(gè)地址  因?yàn)閍變量存儲(chǔ)的值對(duì)應(yīng)的是函數(shù)所以最終時(shí)候可以通過a[下標(biāo)]訪問元素的
                console.log(a)
            }
            //1、棧區(qū)創(chuàng)建一個(gè)arr變量 賦值為堆區(qū)中保存數(shù)據(jù)的地址
            var arr = [1,2,3]
            //2、調(diào)用函數(shù)并且傳遞arr變量的值  傳遞的是一個(gè)內(nèi)存地址
            fn(arr)
            ```

            2、將函數(shù)作為參數(shù)傳遞

            ```js
            //1、創(chuàng)建一個(gè)fn變量 并且賦值為堆區(qū)中的地址
            function fn(a){
                //4、執(zhí)行函數(shù)時(shí)進(jìn)行形參賦值 var a = callback  所以將callback變量的地址賦值給了a 由于a是一個(gè)函數(shù) 所以可以()
                a()
            }
            //2、創(chuàng)建callback 并且賦值為堆區(qū)中的地址
            var callback  = function(){
                console.log('回調(diào)函數(shù)');
            }
            //3、調(diào)用fn函數(shù) 并且傳遞參數(shù)callback的地址
            fn(callback)
            ```

            4

            更多關(guān)于“web前端培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的提升班,高品質(zhì)課程助理你實(shí)現(xiàn)夢(mèng)想。

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            抖音小店運(yùn)營(yíng)做什么的

            在當(dāng)前的電商市場(chǎng)中,抖音小店已經(jīng)逐漸成為一種新的電商模式,它集成了社交化、音視頻分享、直播銷售等多種功能,使得消費(fèi)者更加便捷地進(jìn)行商品...詳情>>

            2023-10-08 16:36:41
            抖音小店照片要求尺寸多大

            在抖音平臺(tái)開設(shè)小店已經(jīng)成為了越來越多人的選擇,相信大家已經(jīng)在各大社交平臺(tái)上看到有不少小店的推廣。在抖音上,照片是展示產(chǎn)品的重要手段,因...詳情>>

            2023-10-08 16:14:25
            抖音招商團(tuán)長(zhǎng)托管服務(wù)費(fèi)怎么退回來

            抖音招商團(tuán)長(zhǎng)托管服務(wù)是抖音為有意愿創(chuàng)作內(nèi)容并帶動(dòng)其他創(chuàng)作者成為團(tuán)隊(duì)成員的用戶提供的一種服務(wù)。通過該服務(wù),招商團(tuán)長(zhǎng)可以自主組建團(tuán)隊(duì)并得到...詳情>>

            2023-10-08 16:08:53
            抖音小店怎么做代銷

            抖音已經(jīng)成為了一個(gè)非常受歡迎的短視頻應(yīng)用程序,在其中許多用戶都精心打造了自己的小店,用于銷售各種各樣的商品,獲取額外的收入。然而,要想...詳情>>

            2023-10-08 15:28:41
            怎樣開抖音小店帶貨賺錢

            隨著直播帶貨的火熱,越來越多的人開始嘗試通過抖音小店來開展帶貨業(yè)務(wù)。抖音小店是抖音直播帶貨的配套,可以讓用戶在購(gòu)買直播中產(chǎn)品時(shí)就實(shí)現(xiàn)購(gòu)...詳情>>

            2023-10-08 15:06:36
            快速通道