如何覆盖特定数组的方法?

时间:2012-06-11 17:23:53

标签: javascript

我需要覆盖特定数组的方法,而不是每个数组,只需要一个对象,它需要像普通数组一样工作,如下所示:

var arr1 = [];
var arr2 = [];

overrideThatWay(arr1);

arr1.push(2); //invoke overrided method
arr2.push(2); //invoke regular method

for(var a1 in arr1){
//act like an array, dont list the overrided methods
}

2 个答案:

答案 0 :(得分:1)

arr1.push = function (item) {
// "overloaded" function
}

答案 1 :(得分:0)

也许这样,但我不知道其含义:

Object.defineProperty(arr1, "push", {
          enumerable: false
        , configurable: true
        , writable: false
        , value: function(prop) {
                    //do something
                }

});