浅谈窗口对象的重写方法
这是看一个著名的IT网站的方式。
复制代码代码如下所示:
window.alert =函数(){ };
也许
复制代码代码如下所示:
警报=函数(){ };
事实上,这种书写方式有些不妥,这相当于在窗口对象上添加了一个警报属性。它的优先级高于系统内置的警报,因此可以实现重写的效果,但是很容易突破。如果执行以下语句,我们将恢复警报。
复制代码代码如下所示:
删除window.alert;
因为以这种方式重写的警报只是窗口对象的一个属性,所以可以通过删除操作符删除它。
它如何被永久地重写和不可逆转
只定义一个全局变量。虽然全局变量也被注册为窗口对象的属性,但是它不能被删除,实际上它是绝对的:
复制代码代码如下所示:
Var(警报=函数){ };
这种重写方法绝对不减少,安全可靠!