Как можно добавить немного своего кода в функцию (не свою, а [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; });');
}
Сейчас я могу это узнать, в консоль всё пишет, но функции не работают и вызывают ошибки.
Ответ
Простой пример с 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));
Комментариев нет:
Отправить комментарий