亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js中window對象前綴是不是都可以省略?

js中window對象前綴是不是都可以省略?

郎朗坤 2019-03-13 22:15:09
js中window對象前綴是不是都可以省略?比如window.history.length 直接寫history.length好像也可以 還有open 是不是所有的window對象(如screen、location)及其方法、屬性都可以省略window前綴?還是說有什么限制?
查看完整描述

5 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

說下我的理解吧,可能不精準,僅供參考。
Window 對象表示瀏覽器中打開的窗口,那么滿足兩個條件,就可以省略:

  1. 在瀏覽器環境下

  2. 在頂級Frame下

那么在以上兩個條件的前提下,以下情況是無法省略window的:

  1. 在子Frame框架下,因為瀏覽器會為frame新創建一個子window對象

  2. 非瀏覽器環境下,比如Node


查看完整回答
反對 回復 2019-04-08
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

https://img1.sycdn.imooc.com//5caaeabe0001878807700437.jpg

所以都可以省略這個window

凡是 window對象的屬性和方法都可以

window.alert()
window.history


查看完整回答
反對 回復 2019-04-08
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

作用域問題, 下面來自《你不懂js》的作用域章節

function foo(a) {    
console.log( a + b );
}var b = 2;

foo( 2 ); // 4
引擎:“嘿,foo 的 作用域,聽說過 b 嗎?我得到一個它的 RHS 引用?!?p>作用域:“沒有,從沒聽說過。問問別人吧?!?/p>

引擎:“嘿,foo 外面的 作用域,哦,你是全局 作用域,好吧,酷。聽說過 b 嗎?我得到一個它的 RHS 引用?!?/p>

作用域:“是的,當然有。給你?!?/p>

可以大概得出,在函數foo的作用域中并沒有b變量,所以會去外層(直到全局, 未找到則會報錯)尋找,而在瀏覽器中也就是會去window下尋找。如果使用window.alert,則表示alert存在于window作用域下, 這樣Js引擎直接就去window下獲取.

以上都是個人理解,可能會有偏差,還請指出


查看完整回答
反對 回復 2019-04-08
  • 5 回答
  • 0 關注
  • 1161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號