Tag: es6 proxy

意外在ES6代理中设置陷阱行为

let ar = []; let p = new Proxy(new Map(), { get: (o, k) => { ar.push(1) return Reflect.get(o, k).bind(o) }, set: (o, k, v) => { ar.push(2) return Reflect.set(o, k, v) } }); p.set(1, 2) p.get(1) console.log(ar) //Outputs [1,1] 我试图拦截两个集合,并得到一个Map对象的操作。 我没有办法试图扩展/子类的地图。 在代理Map对象的过程中,我遇到了这个奇怪的意外行为,在上面的代码中没有触发set trap,而是get trap被激发了两次! 我进一步按照以下方式loggingget陷阱中的k(key)值; //same code above get: (o, k) => { console.log(k) […]

从现有代理实例中检索原始目标对象

说我有一个像这样的代理实例: const getProxy = function(){ return new Proxy({}, …); } const proxy = getProxy(); 后来,我想从代理检索目标,有没有办法做到这一点? 就像是: const target = proxy.getOriginalTarget()

在node.js ES6中,是否可以传入一个types然后实例化它?

在我的项目中,我有几个看起来像这样的类: "use strict"; var exports = module.exports = {}; var SystemsDAO = require('./dao/systems/SystemsDAO.js'); var aop = require('./dbAOPUtils.js'); var Proxy = require('harmony-proxy'); var sqlite3 = require('sqlite3').verbose(); /* Wraps a SystemServiceObject and passes in a constructed * DAO object as an argument to specified functions. */ exports.SystemsDAOIntercepter = function(obj) { let handler = { get(target, propKey, receiver) […]