首页 > javascript如何找回一些默认类型

javascript如何找回一些默认类型

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


可以考虑使用 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,也就恢复了。

【热门文章】
【热门文章】