javascript如何找回一些默认类型
PHP中文网
PHP中文网 2017-04-10 12:45:51
0
1
569

javascript可以覆盖默认类型,比如 var Docuemnt = 3; 如果是undefined 我们可以通过 void(0) 来找回。 但是其他一些类型怎么找回,比如Text,Document?

PHP中文网
PHP中文网

认证高级PHP讲师

reply all(1)
左手右手慢动作

可以考虑使用 delete 来恢复。例如

alert = 111;
delete alert;
alert('test');

甚至可以考虑创建一个 iframe,然后用 iframe 下的对应类型覆盖掉自身。

---update---

多扯两句,为啥 delete 可以恢复。

因为一些方法都是宿主环境的原型上面的方法,例如A.prototype.alert

通常我们使用的时候,A 下没有 alert 方法,所以就去查找 A 的原型,然后发现原型有 alert 方法,然后就成功执行了。

我们覆盖那些默认方法的时候,是相当于给 A.alert 赋值。根据变量查找的顺序,先找到 A.alert 了,所以就执行了。所以,我们只要 delete 掉 A.alert,执行的时候,就会找到原型上的 alert,也就恢复了。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template