浅谈重写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 mobile的header和footer在点击屏幕的时候消失的解决办法
Jul 01 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
JS批量替换内容中关键词为超链接
Feb 20 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
JS作用域链详解
Jun 26 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
Oct 12 Javascript
IntelliJ IDEA 安装vue开发插件的方法
Nov 21 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 Javascript
原生js实现的观察者和订阅者模式简单示例
Apr 18 Javascript
vue3.0 自适应不同分辨率电脑的操作
Feb 06 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
30个php操作redis常用方法代码例子
2014/07/05 PHP
PHP中的类型约束介绍
2015/05/11 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python自定义线程类简单示例
2018/03/23 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python 文件转成16进制数组的实例
2018/07/09 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
Python中断多重循环的思路总结
2019/10/04 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
大学生军训自我鉴定
2014/02/12 职场文书
机关会计岗位职责
2014/04/08 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server