Страницы

Поиск по вопросам

воскресенье, 15 марта 2020 г.

Добавление кода в нативные функции

#javascript


Как можно добавить немного своего кода в функцию (не свою, а [native code]).

Пример кода:

Math.__defineGetter__('pow', function() {
    console.log( 'USE: Math.pow' );
    return function() { return 100500; };
});


То есть при вызове Math.pow(1,2); в консоль пишется 'USE: Math.pow' и возвращается
100500.

Надо сделать так, чтобы функция писала в консоль и продолжала свою "правильную" работу. 

Я пишу "юзерскрипт" и хочу знать какие методы использует сайт. Не все, конечно, а,
например, только из Math.

for (var i in Math ) {
    eval('Math.__defineGetter__( "' + i + '", function() { console.log( "USE Math.'
+ i + '" ); return 1; });');
}


Сейчас я могу это узнать, в консоль всё пишет, но функции не работают и вызывают ошибки.
    


Ответы

Ответ 1



Простой пример с Math.pow() для демонстрации идеи: var savedPow = Math.pow; Math.pow = function(number, exp) { console.log('USE: Math.pow'); return savedPow(number, exp); }; console.log(Math.pow(10, 3));

Комментариев нет:

Отправить комментарий