• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
    問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    關(guān)于JavaScript閉包的相關(guān)知識(shí)的了解和使用

    來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:50:19
    文檔

    關(guān)于JavaScript閉包的相關(guān)知識(shí)的了解和使用

    關(guān)于JavaScript閉包的相關(guān)知識(shí)的了解和使用:JavaScript 閉包全局變量和局域變量中發(fā)揮著重要的作用,本篇將對(duì)其的相關(guān)知識(shí)做出講解。JavaScript 變量可以是局部變量或全局變量。私有變量可以用到閉包。全局變量函數(shù)可以訪問(wèn)由函數(shù)內(nèi)部定義的變量,如:實(shí)例function myFunction() { va
    推薦度:
    導(dǎo)讀關(guān)于JavaScript閉包的相關(guān)知識(shí)的了解和使用:JavaScript 閉包全局變量和局域變量中發(fā)揮著重要的作用,本篇將對(duì)其的相關(guān)知識(shí)做出講解。JavaScript 變量可以是局部變量或全局變量。私有變量可以用到閉包。全局變量函數(shù)可以訪問(wèn)由函數(shù)內(nèi)部定義的變量,如:實(shí)例function myFunction() { va

    JavaScript 閉包全局變量和局域變量中發(fā)揮著重要的作用,本篇將對(duì)其的相關(guān)知識(shí)做出講解。

    JavaScript 變量可以是局部變量或全局變量。

    私有變量可以用到閉包。

    全局變量

    函數(shù)可以訪問(wèn)由函數(shù)內(nèi)部定義的變量,如:

    實(shí)例

    function myFunction() {
     var a = 4; return a * a;}

    函數(shù)也可以訪問(wèn)函數(shù)外部定義的變量,如:

    實(shí)例

    var a = 4;function myFunction() {
     return a * a;}

    后面一個(gè)實(shí)例中, a 是一個(gè) 全局 變量。

    在web頁(yè)面中全局變量屬于 window 對(duì)象。

    全局變量可應(yīng)用于頁(yè)面上的所有腳本。

    在第一個(gè)實(shí)例中, a 是一個(gè) 局部 變量。

    局部變量只能用于定義它函數(shù)內(nèi)部。對(duì)于其他的函數(shù)或腳本代碼是不可用的。

    全局和局部變量即便名稱(chēng)相同,它們也是兩個(gè)不同的變量。修改其中一個(gè),不會(huì)影響另一個(gè)的值。

    變量聲明時(shí)如果不使用 var 關(guān)鍵字,那么它就是一個(gè)全局變量,即便它在函數(shù)內(nèi)定義。

    變量生命周期

    全局變量的作用域是全局性的,即在整個(gè)JavaScript程序中,全局變量處處都在。

    而在函數(shù)內(nèi)部聲明的變量,只在函數(shù)內(nèi)部起作用。這些變量是局部變量,作用域是局部性的;函數(shù)的參數(shù)也是局部性的,只在函數(shù)內(nèi)部起作用。

    計(jì)數(shù)器困境

    設(shè)想下如果你想統(tǒng)計(jì)一些數(shù)值,且該計(jì)數(shù)器在所有函數(shù)中都是可用的。

    你可以使用全局變量,函數(shù)設(shè)置計(jì)數(shù)器遞增:

    實(shí)例

    var counter = 0; 
    function add() {
     return counter += 1;}
     add();add();add(); 
    // 計(jì)數(shù)器現(xiàn)在為 3

    計(jì)數(shù)器數(shù)值在執(zhí)行 add() 函數(shù)時(shí)發(fā)生變化。

    但問(wèn)題來(lái)了,頁(yè)面上的任何腳本都能改變計(jì)數(shù)器,即便沒(méi)有調(diào)用 add() 函數(shù)。

    如果我在函數(shù)內(nèi)聲明計(jì)數(shù)器,如果沒(méi)有調(diào)用函數(shù)將無(wú)法修改計(jì)數(shù)器的值:

    實(shí)例

    function add() {
     var counter = 0; return counter += 1;}
     add();add();add(); 
    // 本意是想
    輸出 3, 但事與愿違,輸出的都是 1 !

    以上代碼將無(wú)法正確輸出,每次我調(diào)用 add() 函數(shù),計(jì)數(shù)器都會(huì)設(shè)置為 1。

    JavaScript 內(nèi)嵌函數(shù)可以解決該問(wèn)題。

    JavaScript 內(nèi)嵌函數(shù)

    所有函數(shù)都能訪問(wèn)全局變量。

    實(shí)際上,在 JavaScript 中,所有函數(shù)都能訪問(wèn)它們上一層的作用域。

    JavaScript 支持嵌套函數(shù)。嵌套函數(shù)可以訪問(wèn)上一層的函數(shù)變量。

    該實(shí)例中,內(nèi)嵌函數(shù) plus() 可以訪問(wèn)父函數(shù)的 counter 變量:

    實(shí)例

    function add() {
     var counter = 0; function plus() {counter += 1;}
     plus(); 
     return counter; 
    }

    如果我們能在外部訪問(wèn) plus() 函數(shù),這樣就能解決計(jì)數(shù)器的困境。

    我們同樣需要確保 counter = 0 只執(zhí)行一次。

    我們需要閉包。

    JavaScript 閉包

    還記得函數(shù)自我調(diào)用嗎?該函數(shù)會(huì)做什么?

    實(shí)例

    var add = (function () {
     var counter = 0; return function () {return counter += 1;}})(); 
    add();add();add(); 
    // 計(jì)數(shù)器為 3

    全局變量和局域變量的閉包知識(shí)做了大致的了解,更多的學(xué)習(xí)資料清關(guān)注Gxl網(wǎng)即可觀看。

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    關(guān)于JavaScript閉包的相關(guān)知識(shí)的了解和使用

    關(guān)于JavaScript閉包的相關(guān)知識(shí)的了解和使用:JavaScript 閉包全局變量和局域變量中發(fā)揮著重要的作用,本篇將對(duì)其的相關(guān)知識(shí)做出講解。JavaScript 變量可以是局部變量或全局變量。私有變量可以用到閉包。全局變量函數(shù)可以訪問(wèn)由函數(shù)內(nèi)部定義的變量,如:實(shí)例function myFunction() { va
    推薦度:
    標(biāo)簽: 知識(shí) js 理解
    • 熱門(mén)焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門(mén)推薦

    專(zhuān)題
    Top
    主站蜘蛛池模板: 99精品国产高清一区二区麻豆| 在线电影国产精品| 欧美巨大黑人精品videos| 香蕉依依精品视频在线播放 | 亚洲精品乱码久久久久久蜜桃不卡 | 久久99热这里只有精品国产| 国产在线不卡午夜精品2021| 色妞ww精品视频7777| 看99视频日韩精品| 97国产视频精品| 国产亚洲一区二区精品| 久久香蕉国产线看观看精品yw| 午夜精品久久久久久影视777| 国产激情精品一区二区三区| 国产精品国产三级专区第1集| 亚洲AV无码国产精品色午友在线| 日本精品一区二区久久久| 国产在线精品一区二区高清不卡 | 大伊香蕉精品视频在线导航| 久久亚洲国产成人精品性色| 在线观看自拍少妇精品| 欧美精品亚洲精品日韩精品| 国产微拍精品一区二区| 国产999精品久久久久久| 欧美精品在线一区二区三区| 99视频在线观看精品| 国产精品三级国产电影| 国产精品无码专区| 国内精品久久久久久99蜜桃| 日韩精品内射视频免费观看| 亚洲精品午夜无码专区| 综合在线视频精品专区| 亚欧无码精品无码有性视频| 四虎精品免费永久免费视频| 亚州日韩精品专区久久久| 亚洲AV蜜桃永久无码精品| 四虎精品亚洲一区二区三区 | 久久久久人妻精品一区三寸蜜桃| 精品无码久久久久久久动漫| 久久精品无码专区免费| 欧美精品一区二区三区免费|