浅谈重写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 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
Mootools 1.2教程(21)——类(二)
Sep 15 Javascript
jquery获取input的value问题说明
Aug 19 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
Dec 24 Javascript
Vue组件tree实现树形菜单
Apr 13 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
element-ui中的select下拉列表设置默认值方法
Aug 24 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
详解微信小程序开发用户授权登陆
Apr 24 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 and xml示例
2006/11/22 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
jQuery语法总结和注意事项小结
2012/11/11 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
YUV转为jpg图像的实现
2019/12/09 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
CSS3 开发工具收集
2010/04/17 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
软件测试工程师笔试题带答案
2015/03/27 面试题
冬季安全检查方案
2014/05/23 职场文书
公司授权委托书样本
2014/09/15 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
三年级学生期末评语
2014/12/26 职场文书
读书笔记格式
2015/07/02 职场文书
参加招聘会后的感想
2015/08/10 职场文书
公司晚会主持词
2019/04/17 职场文书
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
Python实现为PDF去除水印的示例代码
2022/04/03 Python
SQL Server中使用表变量和临时表
2022/05/20 SQL Server