浅谈重写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 相关文章推荐
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
AngularJS快速入门
Apr 02 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
理解javascript模块化
Mar 28 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
JS严格模式知识点总结
Feb 27 Javascript
Vue路由模块化配置的完整步骤
Aug 14 Javascript
浅谈vue限制文本框输入数字的正确姿势
Sep 02 Javascript
vue实现图片上传预览功能
Dec 23 Javascript
详解JavaScript之ES5的继承
Jul 08 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
php中explode函数用法分析
2014/11/15 PHP
前端必学之PHP语法基础
2016/01/01 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python 转义字符详细介绍
2017/03/21 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
10张动图学会python循环与递归问题
2021/02/06 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
Puma印度官网:德国运动品牌
2019/10/06 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
建筑工地标语
2014/06/18 职场文书
挂职个人工作总结
2015/03/05 职场文书
现场施工员岗位职责
2015/04/11 职场文书
七年级作文之环保作文
2019/10/17 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
在Python中如何使用yield
2021/06/07 Python
Go语言编译原理之源码调试
2022/08/05 Golang