O método de reescrever objetos de janela não é uma novidade. Por exemplo, podemos precisar alterar o comportamento do alerta padrão. Como reescrevê -lo com segurança?
Xiaocai viu que um site de TI bem conhecido foi escrito assim:
A cópia do código é a seguinte:
window.alert = function () {};
ou
A cópia do código é a seguinte:
alert = function () {};
De fato, este escrito é um tanto inapropriado. Isso é equivalente a adicionar um atributo de alerta ao objeto da janela. Sua prioridade é maior que o alerta interno no sistema, para que possa alcançar o efeito da reescrita, mas isso é fácil de romper. Se você executar a seguinte declaração, restaurará o alerta.
A cópia do código é a seguinte:
exclua window.alert;
Como o alerta reescrito dessa maneira é apenas um atributo do objeto da janela e pode ser excluído através do operador de exclusão.
Como pode ser reescrito permanentemente e irreversível?
Basta definir uma variável global! Embora as variáveis globais também sejam registradas como propriedade de um objeto de janela, elas não podem ser excluídas e realmente existem absolutamente. O código é o seguinte:
A cópia do código é a seguinte:
var alert = function () {};
Este método de reescrita nunca será restaurado e será seguro e confiável!