成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

深入理解閉包——到底什么才是閉包

tomorrowwu / 2181人閱讀

摘要:古老定義閉包,是指函數(shù)變量可以保存在函數(shù)作用域內(nèi),因此看起來(lái)是函數(shù)將變量包裹了起來(lái)根據(jù)定義,包含變量的函數(shù)就是閉包定義一閉包是指可以訪問(wèn)其所在作用域的函數(shù)按照定義一的說(shuō)法,需要通過(guò)作用域鏈在全局環(huán)境中查找變量的函數(shù)就是閉包定義二閉包是指有權(quán)

古老定義
閉包(closure),是指函數(shù)變量可以保存在函數(shù)作用域內(nèi),因此看起來(lái)是函數(shù)將變量“包裹”了起來(lái)
//根據(jù)定義,包含變量的函數(shù)就是閉包
function foo() {
    var n = 0;
}
cosole.log(n) // Uncaught ReferenceError: n is not defined
定義一
閉包是指可以訪問(wèn)其所在作用域的函數(shù)
//按照定義一的說(shuō)法,需要通過(guò)作用域鏈在全局環(huán)境中查找變量的函數(shù)就是閉包
var n = 0;
function foo() {
    console.log(n); //0
}
foo();
定義二
閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù)
//根據(jù)定義二,訪問(wèn)上層函數(shù)的作用域的內(nèi)層函數(shù)就是閉包
function foo() {
    var a = 2;
    function bar() {
        console.log(a);
    }
    bar();
}
foo();
定義三
閉包是指在函數(shù)聲明時(shí)的作用域以外的地方被調(diào)用的函數(shù)
//通過(guò)將該函數(shù)作為返回值或者作為參數(shù)被傳遞
function foo() {
    var a = 2;
    function bar() {
        console.log(a); //2
    }
    return bar;
    
    /*函數(shù)的返回值可以簡(jiǎn)寫為:
    return function {
        console.log(a) //2
    }
    */
}
foo()();

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92671.html

相關(guān)文章

  • 到底什么閉包深入理解javascript閉包

    摘要:如何使用閉包所以這時(shí)候我們就要用閉包去解決這個(gè)問(wèn)題了,先看代碼。計(jì)數(shù)器為這時(shí)候的就形成了一個(gè)閉包。一個(gè)閉包由兩部分組成,函數(shù)和創(chuàng)建該函數(shù)的環(huán)境。就是創(chuàng)建了一個(gè)匿名函數(shù)調(diào)用函數(shù)解除對(duì)匿名函數(shù)的引用,以便釋放內(nèi)存 古老定義 閉包(closure),是指函數(shù)變量可以保存在函數(shù)作用域內(nèi),因此看起來(lái)是函數(shù)將變量包裹了起來(lái)。 //根據(jù)定義,包含變量的函數(shù)就是閉包 function foo() { ...

    figofuture 評(píng)論0 收藏0
  • 你應(yīng)該要知道的作用域和閉包

    摘要:寫在前面對(duì)于一個(gè)前端開(kāi)發(fā)者,應(yīng)該沒(méi)有不知道作用域的。欺騙詞法作用域有兩個(gè)機(jī)制可以欺騙詞法作用域和。關(guān)于你不知道的的第一部分作用域和閉包已經(jīng)結(jié)束了,但是,更新不會(huì)就此止住未完待續(xù) 這是《你不知道的JavaScript》的第一部分。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 寫在前面 對(duì)于一個(gè)前端開(kāi)發(fā)者,應(yīng)該沒(méi)有不知道作用域的。它是一個(gè)既簡(jiǎn)單有復(fù)雜的概念,簡(jiǎn)單到每行代碼都有它的影子...

    JouyPub 評(píng)論0 收藏0
  • JavaScript - 收藏集 - 掘金

    摘要:插件開(kāi)發(fā)前端掘金作者原文地址譯者插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡(jiǎn)單的方式。提供了與使用掌控異步前端掘金教你使用在行代碼內(nèi)優(yōu)雅的實(shí)現(xiàn)文件分片斷點(diǎn)續(xù)傳。 Vue.js 插件開(kāi)發(fā) - 前端 - 掘金作者:Joshua Bemenderfer原文地址: creating-custom-plugins譯者:jeneser Vue.js插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡(jiǎn)單的方式。插....

    izhuhaodev 評(píng)論0 收藏0
  • 深入挖掘js之函數(shù)

    摘要:通過(guò)可取可取的他們所屬對(duì)象的上下文的方法稱為公共方法函數(shù)調(diào)用模式當(dāng)一個(gè)函數(shù)并非一個(gè)對(duì)象的屬性時(shí),那么它就是被當(dāng)做一個(gè)函數(shù)來(lái)調(diào)用的,以此模式調(diào)用函數(shù),被綁定到了全局對(duì)象。 前言: 前端這兩年的新技術(shù)鋪天蓋地,各種框架、工具層出不窮眼花繚亂。最近打算好好復(fù)習(xí)下 js 基礎(chǔ),夯實(shí)的基礎(chǔ)才是學(xué)習(xí)新技術(shù)的基石。本文作為讀書筆記簡(jiǎn)單的總結(jié)下 js 函數(shù)的基礎(chǔ)知識(shí)。 一、函數(shù)對(duì)象 JavaScr...

    douzifly 評(píng)論0 收藏0
  • 請(qǐng)用一句優(yōu)雅的話表達(dá)javascript閉包

    摘要:局部變量只在當(dāng)前函數(shù)體內(nèi)有效,出了函數(shù)體,就上一級(jí)的范圍,局部變量無(wú)效。但是在中,函數(shù)內(nèi)部有一個(gè)函數(shù),它的函數(shù)體內(nèi)的是指中聲明的局部變量,而非全局變量。這就是一個(gè)非常典型的閉包了。 嚴(yán)格的講,閉包常常表現(xiàn)為一個(gè)函數(shù)內(nèi)部的函數(shù),它使用了非自己定義的、自己所在作用域內(nèi)的變量,并且使這些變量突破了作用域的限制。 函數(shù)內(nèi)部的函數(shù):私有函數(shù) 首先,我們從這個(gè)內(nèi)部函數(shù)去說(shuō)開(kāi),因?yàn)檫@個(gè)是形式上的,如...

    mochixuan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<