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

資訊專(zhuān)欄INFORMATION COLUMN

閉包--閉包之this(三)

Backache / 1965人閱讀

自執(zhí)行函數(shù)

下面三個(gè)自執(zhí)行函數(shù)是一樣的

        //1.
        function test(i){
            console.log(i)
        }
        test("aa")

        //2.
        (function(i){
            console.log(i)
        })("aa")

        // 3.
        var aa = "aa";
        (function(i){
            console.log(i)
        })(aa)
        var a = [1, 2, 3, 4]; {
            var a = [1, 2, 3, 4, 5];
            (function(i) {
                var a = [1, 2, 3, 4, 5, 6];
                for (var i = 0; i < a.length; i++) {
                    console.log(i)  //0,1,2,3,4,5
                }
            })(a)
        }
this
        var num =1;
        var obj = {
            num:2,
            fn:(function(num){
                this.num*=2;
                num+=2;
                return function(){
                    this.num*=3;
                    num++;
                    console.log(num)
                }
            })(num)  //window下的num
        }
        var fn = obj.fn;
        fn();  //4
        obj.fn()  //5
        console.log(num,obj.num); //6,6
fn()
console.log(fn)
console.log(obj.fn())

拆分
        var num =1;
        var obj = {
            num:2,
            fn:(function(num){
                this.num*=2;
                num+=2;
                console.log(this)  //window
                return function(){
                    this.num*=3;
                    num++;
                    console.log(this)  //window
                    console.log(num)   //4
                    console.log(this.num)  //6
                }
            })(num)  //window下的num
        }
        var fn = obj.fn;
        fn();  
        console.log(num,obj.num); //6,2
        var num =1;
        var obj = {
            num:2,
            fn:(function(num){
                this.num*=2;
                num+=2;
                console.log(this)  //window
                return function(){
                    this.num*=3;
                    num++;
                    console.log(this)  //obj
                    console.log(num)  //4
                    console.log(this.num)   //6
                }
            })(num)  //window下的num
        }
        var fn = obj.fn; 
        obj.fn()  
        console.log(num,obj.num); //2,6

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

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

相關(guān)文章

  • 前端學(xué)習(xí)筆記閉包——看了一張圖終于明白啥是閉包

    摘要:在一個(gè)閉包環(huán)境內(nèi)修改變量值,不會(huì)影響另一個(gè)閉包中的變量。直到看到函數(shù)閉包閉包這篇文章的代碼一部分,終于明白其中的邏輯了。 閉包 閉包定義:指擁有多個(gè)變量和綁定了這些變量的環(huán)境的表達(dá)式(通常是一個(gè)函數(shù)),因而這些變量也是該表達(dá)式的一部分。函數(shù)內(nèi)部可以直接讀取全局變量。函數(shù)內(nèi)部變量無(wú)法在函數(shù)外部訪(fǎng)問(wèn)。函數(shù)內(nèi)部聲明要用var或者let聲明,不然會(huì)變成全局變量鏈?zhǔn)阶饔糜颍鹤訉?duì)象會(huì)一級(jí)級(jí)向上尋找...

    andycall 評(píng)論0 收藏0
  • 進(jìn)擊JavaScript)玩轉(zhuǎn)閉包

    摘要:為了更好的理解,在閱讀此文之前建議先閱讀上一篇進(jìn)擊之詞法作用域與作用域鏈?zhǔn)裁词情]包閉包的含義就是閉合,包起來(lái),簡(jiǎn)單的來(lái)說(shuō),就是一個(gè)具有封閉功能與包裹功能的結(jié)構(gòu)。在中函數(shù)構(gòu)成閉包。 為了更好的理解,在閱讀此文之前建議先閱讀上一篇《進(jìn)擊JavaScript之詞法作用域與作用域鏈》 1.什么是閉包 閉包的含義就是閉合,包起來(lái),簡(jiǎn)單的來(lái)說(shuō),就是一個(gè)具有封閉功能與包裹功能的結(jié)構(gòu)。所謂的閉包就是...

    cyixlq 評(píng)論0 收藏0
  • JavaScript閉包

    摘要:以上描述,全部符合閉包的描述,那這就是閉包。二執(zhí)行過(guò)程之前的文章講了函數(shù)的執(zhí)行上下文棧,變量對(duì)象,作用域鏈等內(nèi)容,接下來(lái)通過(guò)閉包代碼回顧代碼是怎么樣的執(zhí)行過(guò)程。將活動(dòng)對(duì)象壓入作用域鏈頂端。函數(shù)執(zhí)行結(jié)束,彈出執(zhí)行上下文棧。 本文一共 1300 字,讀完只需 5 分鐘 概述 閉包, 可以說(shuō)是每個(gè)前端工程師都聽(tīng)說(shuō)的一個(gè)詞,咋一看很難從字面上去理解,從而給人留下了閉包是一個(gè)重要又難以理解的...

    huashiou 評(píng)論0 收藏0
  • JavaScript閉包

    摘要:而閉包的妙處在于,當(dāng)函數(shù)在執(zhí)行完畢后它的活動(dòng)對(duì)象不會(huì)被銷(xiāo)毀,因?yàn)槟涿瘮?shù)的作用域鏈仍然在引用函數(shù)的活動(dòng)對(duì)象它的作用域鏈會(huì)被銷(xiāo)毀。 一、閉包 閉包是指有權(quán)訪(fǎng)問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù)。創(chuàng)建閉包的常用方式是,在一個(gè)函數(shù)內(nèi)部創(chuàng)建另一個(gè)函數(shù)。 請(qǐng)看以下代碼:我們?cè)赾reateComparisonFunction函數(shù)里創(chuàng)建了一個(gè)閉包 function createComparisonFun...

    Mr_houzi 評(píng)論0 收藏0
  • 進(jìn)擊的 JavaScript( 函數(shù)執(zhí)行過(guò)程

    摘要:中沒(méi)有可執(zhí)行的函數(shù)了,執(zhí)行完出棧。當(dāng)某個(gè)函數(shù)被調(diào)用時(shí),會(huì)創(chuàng)建一個(gè)執(zhí)行環(huán)境及相應(yīng)的作用域鏈。檢查當(dāng)前環(huán)境中的函數(shù)聲明使用聲明的。確定指向所以說(shuō)的指向,是在函數(shù)執(zhí)行時(shí)確定的。 理解js 的執(zhí)行過(guò)程是很重要的,比如,作用域,作用域鏈,變量提升,閉包啊,要想明白這些,你就得搞懂函數(shù)執(zhí)行時(shí)到底發(fā)生了什么! 一、執(zhí)行環(huán)境(Execution Context)又稱(chēng)執(zhí)行上下文 當(dāng)代碼執(zhí)行時(shí)都會(huì)產(chǎn)生一個(gè)...

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

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

0條評(píng)論

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