Метод переписывания оконных объектов не является новизной. Например, нам может потребоваться изменить поведение оповещения по умолчанию. Как безопасно переписать это?
Сякай увидел, что известный ИТ-сайт был написан так:
Кода -копия выглядит следующим образом:
window.alert = function () {};
или
Кода -копия выглядит следующим образом:
alert = function () {};
На самом деле, это написание несколько неуместно. Это эквивалентно добавлению атрибута оповещения в окно -объект. Его приоритет выше встроенного оповещения в системе, поэтому он может достичь эффекта переписывания, но это легко прорваться. Если вы выполните следующий оператор, вы восстановите предупреждение.
Кода -копия выглядит следующим образом:
Удалить window.alert;
Потому что предупреждение, переписанное таким образом, является просто атрибутом окна объекта и может быть удален через оператор Delete.
Как это может быть постоянно переписано и необратимо?
Просто определите глобальную переменную! Хотя глобальные переменные также будут зарегистрированы как свойство окна, их нельзя удалить, и они действительно существуют абсолютно. Код заключается в следующем:
Кода -копия выглядит следующим образом:
var alert = function () {};
Этот метод переписывания никогда не будет восстановлен и будет безопасным и надежным!