12得票3回答
JavaScript中自定义类似数组的getter方法

我有一个简单的 ES6 类,如下:class Ring extends Array { insert (item, index) { this.splice(index, 0, item); return this; } } 我希望让 Ring ...

12得票1回答
为什么Set与代理不兼容?

JavaScript Set 似乎与 JavaScript proxies 完全不兼容,尝试使用 Proxy() 来代理一个 Set() var p = new Proxy(new Set(), { add(target, val, receiver) { console.lo...

11得票2回答
Typescript编译器不了解ES6类Proxy陷阱的问题

我有一个抽象类:abstract class Foo { abstract bar(): string; } 我有一些继承了 Foo 的类:class Foo1 extends Foo { bar(): string { return 'foo1'; } } class Fo...

11得票2回答
函数代理 .toString() 错误

我正在尝试在函数代理上调用.toString()。仅仅创建一个函数代理并调用toString会导致"TypeError: Function.prototype.toString is not generic"错误,将toString设置为返回原始函数的源代码则会导致"RangeError: M...

10得票3回答
在 Node.js 上使用 Proxy.apply() 不起作用。这是一个 bug 还是我的使用方法有误?

我正在使用代理来代理一个对象。getter和setter正常工作,如预期的那样。但是apply方法从未被调用。 var p = new Proxy({}, { /* getter */ get(target, name) { return target...

10得票1回答
创建代理的结构化克隆

我有一个类,构造函数返回的是代理。当我尝试将这个类的实例存储到 IndexedDB 中或使用 window.postMessage() 发送对象时,会收到一条错误提示:无法克隆该对象。似乎 结构化克隆算法 无法处理代理对象。 下面的代码演示了这个错误:class MyClass { c...

10得票3回答
当在具有get处理程序的代理上调用Array.prototype.forEach()时无效。

我有以下代理: const p = new Proxy({ [Symbol.iterator]: Array.prototype.values, forEach: Array.prototype.forEach, }, { get(target, property) { ...

9得票3回答
从现有代理实例中检索原始目标对象

假设我有一个代理实例: const getProxy = function(){ return new Proxy({}, ...); } const proxy = getProxy(); 之后,我想从代理中检索目标,有没有办法可以做到这一点?类似这样的: const ta...

9得票3回答
ES6代理类,访问私有属性(无法从未声明其类的对象中读取私有成员#hidden)

我正在尝试使用代理对象、类和私有属性进行实验。 然后遇到了这个错误信息: /home/marc/projects/playground/pipeline/clsss.js:14 this.#hidden = !this.#hidden; ...

9得票1回答
使用`with`语句和代理一起使用是不良实践吗?

首先,我想澄清,我知道 with 已被弃用,使用它通常是一种不好的做法。 然而,我的问题是关于一个特殊情况:将一个特殊的 Proxy 对象作为 with 的参数。 背景 我正在开发一个项目,需要将一段代码的访问限制在全局范围内。 一种方法是使用带有eval的循环,为全局对象的每个属...