Ecmascript 6 ES6中Array.prototype方法的代理错误

Ecmascript 6 ES6中Array.prototype方法的代理错误,ecmascript-6,Ecmascript 6,我的代码在这里: var target = Array.prototype.push var handler = { apply: function () { return 'I am the proxy'; } }; var p = new Proxy(target, handler); Array.prototype.push = p console.log(p,p(1)); 错误如下: [Function:push]“我是代理”internal/process/next

我的代码在这里:

var target = Array.prototype.push
var handler = {
  apply: function () {
    return 'I am the proxy';
  }
};

var p = new Proxy(target, handler);
Array.prototype.push = p
console.log(p,p(1));
错误如下:

[Function:push]“我是代理”internal/process/next_tick.js:93 回调=tock.callback; ^

TypeError:无法读取未定义的属性“回调” 在进程中。_tick回调(内部/process/next_tick.js:93:24)


当我将观察者函数分配给Array.protoType时,我得到了这个错误。问题在哪里

代理目标应该是一个对象,而不是一个单独的方法。这里根本不需要代理。它应该只是一个push的包装函数。@estus Hi,只要将这段代码复制到浏览器中,就可以了。但nodejs faliedIt并不明显。如果您仅在Node上遇到问题,请根据该问题修改问题。建议说明其目的是什么,您可能有XY问题。因为代理用于捕获对几个可能不存在的方法的调用。对于单个方法,一个包装器函数就足够了。