第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

沒寫var的情況下, fn2相當(dāng)于全局函數(shù),但是可以讀取局部變量?

沒寫var的情況下, fn2相當(dāng)于全局函數(shù),但是可以讀取局部變量?

UYOU 2019-02-12 17:19:44
var fn1 = function(){var a=1alert(a)fn2=function(){console.log(a);}}fn1();fn2(); 這樣的話全局的fn2,讀取用到了局部函數(shù)fn1的var a=1?不符合作用域鏈啊?
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

函數(shù)fn2就被包括在函數(shù)fn1內(nèi)部,這時(shí)fn1內(nèi)部的所有局部變量,對(duì)fn2都是可見的,但是對(duì)于fn2來說是改變不了fn1任何局部變量的值的。

同時(shí)fn2內(nèi)部的局部變量,對(duì)fn1是不可見的。這就是Javascript語言特有的“鏈?zhǔn)阶饔糜颉苯Y(jié)構(gòu)(chain scope),子對(duì)象會(huì)一級(jí)一級(jí)地向上尋找所有父對(duì)象的變量。

所以,父對(duì)象的所有變量,對(duì)子對(duì)象都是可見的,反之則不成立。


var fn2; // 此時(shí)fn2為undefined


var fn1 = function () {


        var a = 1

        // alert(a)

        // 重新定義fn2為一個(gè)函數(shù),因此可以在外部調(diào)用fn2

        fn2 = function () {

            a = 4;

            console.log('fn2',a);

            fn1();

        }


        console.log('fn1',a);

    }


    fn1();

    fn2();


查看完整回答
反對(duì) 回復(fù) 2019-02-28
  • 1 回答
  • 0 關(guān)注
  • 339 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)