覆盖数组推送时调用原始方法

时间:2016-06-29 09:52:32

标签: javascript arrays

我正在尝试覆盖数组上的push。我需要能够在覆盖之前调用原始push方法,以便将元素推送到数组上。

以下是我的代码。我在list.push方法中添加了value。我知道这是错的,但我添加了它以显示我想要做的事情。

let list = [
  'One',
  'Two',
  'Three'
]

Object.defineProperty(list, 'push', {
  value: function(el) {
    list.push(el) // I know this is wrong. Example of what I am trying to do. 
  }
})

1 个答案:

答案 0 :(得分:3)

使用当前对象作为上下文调用原始原型实现:

Array.prototype.push.call(this, el)