2

これが私のテストコードです(次を使用して実行し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])

最後の 2 行で 5 が出力されないのはなぜですか? プロキシが整数のように見えるプロパティをインターセプトできないのはなぜですか? それは実装のバグですか、それとも指定方法ですか? 独自の配列 (スパース配列など) を実装できるように、配列インデックスをインターセプトする別の方法はありますか?

4

2 に答える 2

1

ノードの変更ログを正しく読むと、ノード 0.6.18 はまだ V8 3.6.6 で実行されていますが、これはかなり古いバージョン (2011 年 10 月以降) です。そのバージョンでは、プロキシのサポートはまだ進行中です (他のサポートされている Harmony 機能と同様)。V8 3.8 (2011 年 12 月以降) より前に、プロキシが適切に機能するとは思わないでください。残念ながら、ノードの安定版がいつアップグレードされるかはわかりません。

于 2012-05-26T20:10:30.750 に答える
1

A. Rossberg が指摘したように、そのバグ (および他のいくつかの問題) は V8 3.8 で修正されています (ノード 0.7.x は非常に安定しており、0.8.x はリリース間近です)。ただし、プロキシを使用している場合は、注意が必要なバグがまだいくつかあります。この github issue には、それらの概要が非常によくまとめられています: https://github.com/tvcutsem/harmony-reflect/issues/4

于 2012-05-27T16:32:55.000 に答える