浅谈重写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 chili图片远处放大插件
Nov 30 Javascript
jQuery实现切换页面布局使用介绍
Oct 09 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
jquery操作cookie插件分享
Jan 14 Javascript
用原生JS获取CLASS对象(很简单实用)
Oct 15 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
jQuery的事件委托实例分析
Jul 15 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
JavaScript封闭函数及常用内置对象示例
May 13 Javascript
微信小程序实现横向滚动导航栏效果
Dec 12 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
Nov 04 Javascript
js中Object.create实例用法详解
Oct 05 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伪静态写法附代码
2008/06/20 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
深入密码加salt原理的分析
2013/06/06 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
面包屑导航详解
2017/12/07 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
python 测试实现方法
2008/12/24 Python
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
python线程的几种创建方式详解
2019/08/29 Python
python中可以声明变量类型吗
2020/06/18 Python
为什么python比较流行
2020/06/19 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
什么是View State?
2013/01/27 面试题
小学班级口号
2014/06/09 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
赢在执行观后感
2015/06/16 职场文书
运动会宣传稿50字
2015/07/23 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
php中pcntl_fork详解
2021/04/01 PHP
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
nginx 配置指令之location使用详解
2022/05/25 Servers