El método de reescribir objetos de ventana no es una novedad. Por ejemplo, es posible que necesitemos cambiar el comportamiento de la alerta predeterminada. ¿Cómo reescribirlo de forma segura?
Xiaocai vio que un sitio web de TI conocido estaba escrito así:
La copia del código es la siguiente:
window.alert = function () {};
o
La copia del código es la siguiente:
alert = function () {};
De hecho, este escrito es algo inapropiado. Esto es equivalente a agregar un atributo de alerta al objeto de la ventana. Su prioridad es más alta que la alerta incorporada en el sistema, por lo que puede lograr el efecto de la reescritura, pero esto es fácil de avanzar. Si ejecuta la siguiente declaración, restaurará la alerta.
La copia del código es la siguiente:
Eliminar ventana.alert;
Porque la alerta reescrita de esta manera es solo un atributo del objeto de la ventana y se puede eliminar a través del operador Eliminar.
¿Cómo se puede reescribir e irreversible permanentemente?
¡Solo defina una variable global! Aunque las variables globales también se registrarán como una propiedad de un objeto de ventana, no se pueden eliminar y en realidad existen absolutamente. El código es el siguiente:
La copia del código es la siguiente:
var alerta = function () {};
¡Este método de reescritura nunca será restaurado y será seguro y confiable!