node.js - ES6 代理无法拦截数组索引

标签 node.js ecmascript-harmony proxy-object

这是我的测试代码(使用node --harmony-proxies foo.js运行:

var a = Proxy.create({
    get : function (proxy, prop)
    {
        return 5
    }
})


console.log(a['foo'])
console.log(a.length)
console.log(a['10'])
console.log(a[10])

为什么最后两行无法打印 5,为什么代理无法拦截看起来像整数的属性?这是一个实现错误还是它是如何指定的?是否有一种单独的方法来拦截数组索引,以便我可以实现自己的数组(例如稀疏数组)?

最佳答案

如果我正确读取 Node 更改日志,则 Node 0.6.18 仍在 V8 3.6.6 上运行,这是一个相当旧的版本(从 2011 年 10 月开始)。在该版本中,对代理的支持仍在进行中(与其他受支持的 Harmony 功能一样)。不要指望代理在 V8 3.8(从 2011 年 12 月起)之前能够正常运行。不幸的是,我无法告诉您 Node 的稳定版本何时会升级到更高版本。

关于node.js - ES6 代理无法拦截数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762216/

相关文章:

javascript - Mongoose 预保存 bcrypt 未保存

mysql - 如何调用rest api将mysql数据库中的数据显示到html表中

node.js - 我可以在 Node js文件中指定es6吗

javascript - ES6 对象中的方法 : using arrow functions

java - Java中如何实现对象代理或类代理?

javascript - CloudSearch javaScript API 帮助配置 fq 和查询

node.js - Firebase 函数 : Only getting undefined

javascript - Harmony 模块 - 如何处理平台差异?

javascript - 如何使用 Proxy 对象控制属性枚举(for...in)?

c# - 如何在另一个 session 中更新具有惰性属性的对象(代理对象)?