嗨,我想知道是否有人知道如何在JavaScript中从代理的目标值中获取数组。我有这样的东西:
Proxy : [[target]] : Array // the array I need to extract [[handler]] : Object [[IsRevoked]] : false
enyaitl31#
如果您所拥有的只是一个对代理的引用,那么您就没有办法(默认情况下)获取代理的目标。一个特定的代理可以提供一个方法(可能是通过它的一个陷阱处理程序),但是默认情况下没有。
mu0hgdu02#
只需获取原始对象并将其解析为JSON,然后获得一个干净的对象!
item = JSON.parse(JSON.stringify(item))
zed5wv103#
另外,如果处理程序相应地Map所有内容,则可以通过扩展获得目标的副本。但是你不能得到原始的[[target]]对象。
[[target]]
const proxy = new Proxy([1, 2, 3], { get(target, prop, receiver) { return target[prop]; } }); console.log([...proxy]);
3条答案
按热度按时间enyaitl31#
如果您所拥有的只是一个对代理的引用,那么您就没有办法(默认情况下)获取代理的目标。一个特定的代理可以提供一个方法(可能是通过它的一个陷阱处理程序),但是默认情况下没有。
mu0hgdu02#
只需获取原始对象并将其解析为JSON,然后获得一个干净的对象!
zed5wv103#
另外,如果处理程序相应地Map所有内容,则可以通过扩展获得目标的副本。但是你不能得到原始的
[[target]]
对象。