can i listen to a function call using javascript?

前端 未结 3 1392
难免孤独
难免孤独 2020-12-16 03:40

How can i listen to a specific function call with parametters using javascript:

example : when showname(2) is called i can do something like call another function to

3条回答
  •  生来不讨喜
    2020-12-16 04:33

    you can wrap it:

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

    update

    you can do something similar with properties, using getters and/or setters:

    var foo = {
         bar = 'baz'
    };
    

    into

    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';
    

    encapsulated (private _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;
            }
        };
    }();
    

提交回复
热议问题