浅谈重写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 相关文章推荐
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
基于jquery的无缝循环新闻列表插件
Mar 07 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
Oct 29 Javascript
js正文内容高亮效果的实现方法
Jun 30 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
Oct 23 Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
Mar 12 Javascript
Bootstrap 附加导航(Affix)插件实例详解
Jun 01 Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 Javascript
AngularJs上传前预览图片的实例代码
Jan 20 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 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
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python中防止sql注入的方法详解
2017/02/25 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Django-migrate报错问题解决方案
2020/04/21 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
单位刻章介绍信范文
2014/01/11 职场文书
语文教师求职信范文
2015/03/20 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android