浅谈重写window对象的方法


Posted in Javascript onDecember 29, 2014

重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢?

     小菜看到某知名IT网站是这样的写法:

window.alert = function(){};

     或者

alert = function(){};

     实际上,这种写法有些欠妥。这相当于在window对象上添加了一个alert属性,它的优先级比系统内置的alert高,所以可以达到重写的效果,但这很容易突破,执行以下语句,就会还原alert。

delete window.alert;

     因为通过这种方式重写的alert,只不过是window对象的一个属性而已,可以通过delete操作符删除。

     如何才能永久重写,不可逆转呢?

     只需定义一个全局变量即可!全局变量虽然也会注册为window对象的一个属性,但它不可删除,它是事实上绝对存在的。代码如下:

var alert = function(){};

     这样重写的方法,是绝对不会被还原的,安全可靠!

Javascript 相关文章推荐
js变量作用域及可访问性的探讨
Nov 23 Javascript
JavaScript触发器详解
Mar 10 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
JSONP跨域请求
Mar 02 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
改变vue请求过来的数据中的某一项值的方法(详解)
Mar 08 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
Sep 14 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
JavaScript中的console.log()函数详细介绍
Dec 29 #Javascript
深入分析原生JavaScript事件
Dec 29 #Javascript
JavaScript中的alert()函数使用技巧详解
Dec 29 #Javascript
JavaScript实现三阶幻方算法谜题解答
Dec 29 #Javascript
浅谈JavaScript Date日期和时间对象
Dec 29 #Javascript
jQuery中clearQueue()方法用法实例
Dec 29 #Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
Dec 29 #Javascript
You might like
php获取地址栏信息的代码
2008/10/08 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
JavaScript While 循环基础教程
2007/04/05 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
快速了解Python相对导入
2018/01/12 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
Python shelve模块实现解析
2019/08/28 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
python离线安装外部依赖包的实现
2020/02/13 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
奥巴马竞选演讲稿
2014/05/15 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
个人政治思想总结
2015/03/05 职场文书
老公出轨后的保证书
2015/05/08 职场文书
预备党员介绍人意见
2015/06/01 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
《学会看病》教学反思
2016/02/17 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python