Я только что обнаружил, что мы можем перехватить собственный вызов javascript alert () и перехватить код пользователя перед фактическим выполнением.посмотрите пример кода ..
function Test(){
var alertHook=function(aa){
this.alert(aa);
}
this.alert("aa");
this.alert = alertHook;
alert("aa");
}
, поэтому каждый раз, когда я вызываю alert ("aa"), перехватывается локальной функцией alertHook.Но приведенная ниже реализация с небольшими изменениями не работает.
function Test(){
var alertHook=function(aa){
alert(aa);
}
alert("aa");
alert = alertHook; //throws Microsoft JScript runtime error: Object doesn't support this action
alert("aa");
}
выдает Ошибка времени выполнения Microsoft JScript: объект не поддерживает это действие .
Я не знаю, как this .alert = alertHook;позвольте мне перехватить звонок, но alert = alertHook;not.??
Так что я предполагаю использовать это для перехвата любых собственных методов js.?это правильно?
И это приемлемо?потому что таким образом я могу полностью заменить любые собственные вызовы JS своими собственными методами ??
ОБНОВЛЕНИЕ:
Я спросил, это приемлемо?потому что как это хороший подход, имеющий eval () и позволяющий пользователям заменять вызовы собственных функций?
И его обязанность языка защитить разработчиков от вводящих в заблуждение функций, заменяя родные вызовы js на уровне окна (или в файле js общего фреймворка), приведет к краху всей системы ... не так ли??
я могу ошибаться, по моему мнению, потому что я не понимаю причину этой функции ..?Я никогда не видел языка, который позволял бы разработчику заменять собственную реализацию ..