recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript如何找回一些默认类型

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

PHP中文网PHP中文网2817 Il y a quelques jours571

répondre à tous(1)je répondrai

  • ringa_lee

    ringa_lee2017-04-10 12:47:51

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

    répondre
    0
  • Annulerrépondre