假设我删除了 window.alert,我该如何恢复它?

hum*_*ace 6 javascript

假设我在 javascript 中执行此操作

delete window.alert;
// returns true
Run Code Online (Sandbox Code Playgroud)

那么输出console.log(window.alert);将是"undefined"

代码一定有办法访问原本window.alert静止的原生 Functoin,对吧?因此,我将如何取消删除并恢复 window.alert 的问题。

显然,这window.alert只是全局对象所有属性的占位符。

澄清:我没有“丢失”window.alert,但我希望它丢失(例如,使其对于不太受信任的代码不可用,然后不应该访问window.alert。我认为但是有办法获得功能deleted回来了,我想了解一下,询问如何“撤消”全局对象属性的删除?)

Tsv*_*nev 1

window对象是一个普通的 JavaScript 对象。您可以alert通过保留对函数的引用来简单地“保存”该函数。

const alert = window.alert;
delete window.alert; // window.alert is now undefined
window.alert = alert;
Run Code Online (Sandbox Code Playgroud)