浅谈重写window对象的方法
作者:bea
重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢? 小菜看到某知名IT网站是这样的写法: 代码如下: window.alert = function(){}; 或者 代码如下: alert = function(){}; 实际上,这种写法有些欠妥。这相当于在window对象上添加了一个alert属性,它的优先级比系统内置的alert高,所以可以达到重写的效果,但这很容易突破,执行以下语句,就会
重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢?
小菜看到某知名IT网站是这样的写法:
代码如下:
window.alert = function(){};
或者
代码如下:
alert = function(){};
实际上,这种写法有些欠妥。这相当于在window对象上添加了一个alert属性,它的优先级比系统内置的alert高,所以可以达到重写的效果,但这很容易突破,执行以下语句,就会还原alert。
代码如下:
delete window.alert;
因为通过这种方式重写的alert,只不过是window对象的一个属性而已,可以通过delete操作符删除。
如何才能永久重写,不可逆转呢?
只需定义一个全局变量即可!全局变量虽然也会注册为window对象的一个属性,但它不可删除,它是事实上绝对存在的。代码如下:
代码如下:
var alert = function(){};
这样重写的方法,是绝对不会被还原的,安全可靠!
有用 | 无用
小菜看到某知名IT网站是这样的写法:
代码如下:
window.alert = function(){};
或者
代码如下:
alert = function(){};
实际上,这种写法有些欠妥。这相当于在window对象上添加了一个alert属性,它的优先级比系统内置的alert高,所以可以达到重写的效果,但这很容易突破,执行以下语句,就会还原alert。
代码如下:
delete window.alert;
因为通过这种方式重写的alert,只不过是window对象的一个属性而已,可以通过delete操作符删除。
如何才能永久重写,不可逆转呢?
只需定义一个全局变量即可!全局变量虽然也会注册为window对象的一个属性,但它不可删除,它是事实上绝对存在的。代码如下:
代码如下:
var alert = function(){};
这样重写的方法,是绝对不会被还原的,安全可靠!
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JavaScript中的数值范围介绍
- JavaScript常用小技巧小结
- jQuery中:gt选择器用法实例
- 在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
- JavaScript中的值类型详细介绍
- JavaScript不使用prototype和new实现继承机制
- JavaScript中的console.assert()函数介绍
- jQuery中:eq()选择器用法实例
- 根据配置文件加载js依赖模块
- JavaScript中的console.dir()函数介绍
- JavaScript中的console.group()函数详细介绍
- 小米公司JavaScript面试题
- 谷歌浏览器调试JavaScript小技巧
- JavaScript中的console.trace()函数介绍
- JavaScript中的console.profile()函数详细介绍
- jQuery中element选择器用法实例
- JavaScript中的console.time()函数详细介绍
- JavaScript前端图片加载管理器imagepool使用详解
- JavaScript版的TwoQueues缓存模型