鍍金池/ 問答/HTML/ js里的函數(shù)調(diào)用,賦值語句提升

js里的函數(shù)調(diào)用,賦值語句提升

function speakA(){
    alert(this.name);
    alert(this.n);
    speakC();
}
function speakC(){
    this.name = "C";
    this.n = "ddd";

}
speakA();

輸出的是C undefined

alert語句在this.name賦值語句之前,為什么還能輸出C,但是輸出的第二個卻是undefined,是和window.name有關(guān)嗎?window.name這個屬性是會默認(rèn)先賦值嗎?

回答
編輯回答
兔寶寶

window.name默認(rèn)為空
在一個窗口的生命周期內(nèi),窗口載入的所有的頁面都是共享一個window.name

2017年5月21日 12:24
編輯回答
女流氓

通俗的解釋樓上的意思,你這個窗口標(biāo)簽不關(guān)閉的話window.name的值不會回到初始值
這里的this都是指window
第一次執(zhí)行的結(jié)果是""和undefined
這時speakC已經(jīng)執(zhí)行過所以window.name的值是C,window.n是ddd
然后你沒看清楚想再看一遍 按了f5刷新。刷新后window.name不變,其它變量都回復(fù)到初始值
所以此時window.name的值是C,window.n的值是undefined

2018年5月24日 19:37