5 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
說(shuō)下我的理解吧,可能不精準(zhǔn),僅供參考。
Window 對(duì)象表示瀏覽器中打開(kāi)的窗口,那么滿(mǎn)足兩個(gè)條件,就可以省略:
在瀏覽器環(huán)境下
在頂級(jí)Frame下
那么在以上兩個(gè)條件的前提下,以下情況是無(wú)法省略window的:
在子Frame框架下,因?yàn)闉g覽器會(huì)為
frame
新創(chuàng)建一個(gè)子window
對(duì)象非瀏覽器環(huán)境下,比如Node

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
所以都可以省略這個(gè)window
凡是 window對(duì)象的屬性和方法都可以
window.alert()
window.history

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
作用域問(wèn)題, 下面來(lái)自《你不懂js》的作用域章節(jié)
function foo(a) { console.log( a + b ); }var b = 2; foo( 2 ); // 4
引擎:“嘿,foo 的 作用域,聽(tīng)說(shuō)過(guò) b 嗎?我得到一個(gè)它的 RHS 引用?!?p>作用域:“沒(méi)有,從沒(méi)聽(tīng)說(shuō)過(guò)。問(wèn)問(wèn)別人吧?!?/p>引擎:“嘿,foo 外面的 作用域,哦,你是全局 作用域,好吧,酷。聽(tīng)說(shuō)過(guò) b 嗎?我得到一個(gè)它的 RHS 引用?!?/p>
作用域:“是的,當(dāng)然有。給你?!?/p>
可以大概得出,在函數(shù)foo
的作用域中并沒(méi)有b
變量,所以會(huì)去外層(直到全局, 未找到則會(huì)報(bào)錯(cuò))尋找,而在瀏覽器中也就是會(huì)去window
下尋找。如果使用window.alert
,則表示alert
存在于window
作用域下, 這樣Js引擎直接就去window
下獲取.
以上都是個(gè)人理解,可能會(huì)有偏差,還請(qǐng)指出
添加回答
舉報(bào)