浅谈重写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 相关文章推荐
javascript实现表格排序 编辑 拖拽 缩放
Jan 02 Javascript
浅谈js的html元素的父节点,子节点
Aug 06 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
微信JS SDK接入的几点注意事项(必看篇)
Jun 23 Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
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
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
2013/05/15 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
原生js二级联动效果
2017/06/20 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
python ansible服务及剧本编写
2017/12/29 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python通过http下载文件的方法详解
2019/07/26 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Django获取应用下的所有models的例子
2019/08/30 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
大学生暑期实践感言
2014/02/26 职场文书
专家推荐信模板
2014/05/09 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
mysql查询结果实现多列拼接查询
2022/04/03 MySQL