How to extend Array.prototype.push()?

后端 未结 6 724
遥遥无期
遥遥无期 2020-11-27 02:45

I\'m trying to extend the Array.push method so that using push will trigger a callback method, then perform the normal array function.

I\'m not quite sure how to do

6条回答
  •  忘掉有多难
    2020-11-27 03:18

    Since push allows more than one element to be pushed, I use the arguments variable below to let the real push method have all arguments.

    This solution only affects the arr variable:

    arr.push = function (){
        //Do what you want here...
        return Array.prototype.push.apply(this,arguments);
    }
    

    This solution affects all arrays. I do not recommend that you do that.

    Array.prototype.push=(function(){
        var original = Array.prototype.push;
        return function() {
            //Do what you want here.
            return original.apply(this,arguments);
        };
    })();
    

提交回复
热议问题