淺談重寫window對象的方法
重寫window對象的方法不是一件新奇的事,比如我們可能需要改變默認alert的行為,如何安全的重寫呢?
小菜看到某知名IT網(wǎng)站是這樣的寫法:
window.alert = function(){};
或者
alert = function(){};
實際上,這種寫法有些欠妥。這相當于在window對象上添加了一個alert屬性,它的優(yōu)先級比系統(tǒng)內(nèi)置的alert高,所以可以達到重寫的效果,但這很容易突破,執(zhí)行以下語句,就會還原alert。
delete window.alert;
因為通過這種方式重寫的alert,只不過是window對象的一個屬性而已,可以通過delete操作符刪除。
如何才能永久重寫,不可逆轉(zhuǎn)呢?
只需定義一個全局變量即可!全局變量雖然也會注冊為window對象的一個屬性,但它不可刪除,它是事實上絕對存在的。代碼如下:
var alert = function(){};
這樣重寫的方法,是絕對不會被還原的,安全可靠!
相關(guān)文章
JavaScript的strict模式與with關(guān)鍵字介紹
這篇文章主要介紹了JavaScript的strict模式與with關(guān)鍵字,需要的朋友可以參考下2014-02-02
javascript基礎(chǔ)之查找元素的詳細介紹(訪問節(jié)點)
常用jQuery的話我們知道,jQuery有非常強大的選擇器來查找元素(也稱作訪問節(jié)點),例如:基本選擇器、層次選擇器、過濾選擇器、屬性選擇器等2013-07-07
淺析document.ready和window.onload的區(qū)別講解
這篇文章主要介紹了document.ready和window.onload的區(qū)別,有需要的朋友可以參考一下2013-12-12
javascript小數(shù)四舍五入多種方法實現(xiàn)
javascript小數(shù)四舍五入在工作中經(jīng)常會使用到,今天本文整理了一些常用的小竅門,需要了解的朋友可以參考下2012-12-12

