javascript - 替换数组中的插入有效,但从未调用过 splice

标签 javascript arrays google-chrome splice

有一个像这样的数组:

var k =[1,2];
k.push(3);

像这样重新定义推送:

function kPush(e){
  this[this.length] = e * 2;
}
Object.defineProperty(k, 'push', {
  get: function(){return kPush;}
});

并使用调用

k.push(4);
document.write(k);

给予:

var k =[1,2];
k.push(3);
function kPush(e){
  this[this.length] = e * 2;
}
Object.defineProperty(k, 'push', {
  get: function(){return kPush;}
});
k.push(4);
document.write(k);

给予:

1,2,3,8

一切都很好。现在我需要覆盖 splice 但它从未被调用。

Object.defineProperty(k, 'splice', {
  get: function(){return kSplice;}
});

但是

console.debug(k.splice);

给我function splice() { [native code] }。 <-- 它的 native ?但我已经覆盖了该属性!

如何覆盖splice

最佳答案

var k =[1,2];
k.push(3);
function kPush(e){
  this[this.length] = e;
}
Object.defineProperty(k, 'push', {
  get: function(){return kPush;}
});
Object.defineProperty(k, 'splice', {
  get: function(){return function(){
    console.log("Splice");
   Array.prototype.splice.apply(this,arguments);
    }}
});
k.push(4);
k.splice(1,1);
document.write(k);

关于javascript - 替换数组中的插入有效,但从未调用过 splice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051856/

相关文章:

c - 拆分数组中的字符串值

performance - 为什么 Chrome 在加载许多 (≈130) png 图像时如此缓慢?

android - 链接的 CSS 未在移动设备上显示

javascript - IE8 是否存在 JS 开关问题?

c - 指向单引号字符串的字符指针数组打印字符串的最后 4 个字节

javascript - 如何在Ext中查询多个组件?

python - 字符串到数值数组

google-chrome - Chrome 而不是 Firefox 不会转储到 SSLKEYLOGFILE 变量

javascript - 网络上的 TokBox 订户快照

javascript - 如何使用 Javascript 添加事件监听器来验证用户输入?