浅谈重写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 cookies 设置、读取、删除实例代码
Apr 12 Javascript
两个Javascript小tip资料
Nov 23 Javascript
JS声明变量背后的编译原理剖析
Dec 28 Javascript
前台js调用后台方法示例
Dec 02 Javascript
鼠标拖拽移动子窗体的JS实现
Feb 25 Javascript
JS生成不重复随机数组的函数代码
Jun 10 Javascript
DOM基础教程之使用DOM + Css
Jan 20 Javascript
JavaScript实现图片轮播的方法
Jul 31 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
Jun 12 Javascript
vue.js实现单选框、复选框和下拉框示例
Jul 18 Javascript
原生JS封装拖动验证滑块的实现代码示例
Jun 01 Javascript
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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
php从字符串创建函数的方法
2015/03/16 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
Python类定义和类继承详解
2015/05/08 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
自动化专业职业生涯规划书范文
2014/01/16 职场文书
售后服务承诺书模板
2014/05/21 职场文书
合同意向书范本
2014/07/30 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
房产分割协议书范文
2014/11/21 职场文书
大班上学期个人总结
2015/02/13 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python