在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 變量作用域的問題

變量作用域的問題

clipboard.png

function iptDom() {
    var iptValue = getIptValue();
    console.log(iptValue)
    AddUl();
    createHintContent();

}

function getIptValue() {
    // 注意獲取input中的內(nèi)容要用value
    return emailIpt.value;
}

function AddUl() {
    for(j = 0,len=postfixList.length; j < len; j++) {
        let li = document.createElement('li');
        li.innerText = `${iptValue}${postfixList[j]}`;
        emailWrapper.appendChild(li);
    }
}

請問這個(gè)iptValue變量為什么報(bào)錯(cuò)未定義?我的理解是addUl()函數(shù)里使用的這個(gè)iptValue變量應(yīng)該能從外層作用域(iptDom這個(gè)函數(shù)作用域)里獲取到,請問我的理解哪里有錯(cuò)誤

回答
編輯回答
故林

你好,無論函數(shù)在哪里被調(diào)用,也無論它如何被調(diào)用,它的詞法作用域都只由函數(shù)被聲明時(shí)所處
的位置決定。我建議你將AddUl函數(shù)定義在iptDom里面,我覺得問題就能解決掉了。你試試。

2018年6月4日 10:55
編輯回答
伴謊

有一個(gè)簡單的差別方法,你使用變量的那段代碼所在的函數(shù)體內(nèi)(指 var,如果是 letconst 是塊)是否有定義這個(gè)變量。如果有,那就可用,如果沒有,那就用不了。不需要想太多 Runtime 相關(guān)的事情,只需要從代碼上看就行。

你這個(gè)情況,還是給 AddUl 定義參數(shù)吧。

2018年7月6日 03:23
編輯回答
枕頭人

這是由于函數(shù)作用域限制導(dǎo)致的~ 同塊級(jí)作用域 let 定義變量

2017年1月21日 15:58