如何真正重寫window物件的方法

2022-03-25 06:07:41 字數 481 閱讀 7840

重寫window物件的方法不是一件新奇的事,比如我們可能需要改變預設alert的行為,如何安全的重寫呢?

1 window.alert = function(){};

或者1 alert = function(){};

實際上,這種寫法有些欠妥。這相當於在window物件上新增了乙個alert屬性,它的優先順序比系統內建的alert高,所以可以達到重寫的效果,但這很容易突破,執行以下語句,就會還原alert。

1 delete window.alert;

因為通過這種方式重寫的alert,只不過是window物件的乙個屬性而已,可以通過delete操作符刪除。

如何才能永久重寫,不可逆轉呢?

只需定義乙個全域性變數即可!全域性變數雖然也會註冊為window物件的乙個屬性,但它不可刪除,它是事實上絕對存在的。**如下:

1var alert = function(){};

這樣重寫的方法,是絕對不會被還原的,安全可靠!

js中的window物件

window 物件常見的方法 open 方法 作用是開啟乙個新的視窗 open 新的位址url 彈出新的視窗的名字 視窗的特徵描述 視窗的特徵描述 是乙個字串,每乙個特徵用 隔開 window子物件 document window.document location window.location ...

window中的location物件

location 物件是 window 物件的乙個部分,可通過 window.location 屬性來訪問。location 物件包含有關當前 url 的資訊。屬性用法 location.href返回完整的url。location.hash 設定或返回從井號 開始的url 錨 location.ho...

window的location物件詳解

開啟google瀏覽器,調出除錯工具,在console一欄中輸入window.location,出現如圖所示 包含location的多個屬性 接下來以 為例子,介紹一下location的常用屬性 結果為 結果為 http 結果為 www.myurl.com 8866 結果為 www.myurl.co...