我可以用javascript听函数调用吗

can i listen to a function call using javascript?

本文关键字:函数调用 javascript 我可以      更新时间:2023-09-26

如何使用javascript:监听带有参数的特定函数调用

示例:当调用showname(2)时,我也可以调用另一个函数showage(2)

您可以包装它:

var native = window.alert;
window.alert = function(){
    console.log('alerting...');
    native.apply(window, arguments);
    console.log('alerted!');
};
alert('test');

更新

您可以使用getter和/或setter对属性执行类似的操作:

var foo = {
     bar = 'baz'
};

进入

var foo = {
    _bar: 'baz',
    get bar(){
        console.log('someone is taking my bar!');
        return this._bar;
    },
    set bar(val){
        console.log('someone pretends to set my bar to "' + val + '"!');
        this._bar = val;
    }
};
alert(foo.bar);
foo.bar = 'taz';

封装的(专用_bar):

var foo = function(){
    var _bar = 'baz';
    return {
        get bar(){
            console.log('someone is taking my bar!');
            return _bar;
        },
        set bar(val){
            console.log('someone pretends to set my bar to "' + val + '"!');
            _bar = val;
        }
    };
}();

您不能"挂钩"到任意函数调用中

一种方法是向函数添加回调,例如define:

function showname(firstname, lastname, callback){
    alert(firstname + lastname);
    if(callback) callback();
}
function showage(){ 
   alert("who's age?");
}

然后呼叫:

showname("John", "Doe", showage);