Включить Harmony Proxies в nodejs

Можно ли включить EcmaScript 6 Harmony Proxies в nodejs? Если так, каковы плюсы и минусы? И есть ли документация о том, как их использовать? Спасибо !

Ответы на вопрос(5)

Proxy теперь доступно изначально в версиях Node & gt; = 6.

гармония, отражаютчто облегчает, например, настроить ловушки / установить ловушки:

UPDATE осторожно, ниже CoffeeScript

require 'harmony-reflect'

handler =

  get: ( target, name ) ->
    console.log 'get' name
    return target[ name ]

  set: ( target, name, value ) ->
    console.log 'set' name
    target[ '%is-clean' ] = no if value isnt target[ name ]
    if value is undefined then delete target[ name ]
    else                       target[ name ] = value
    return value

clean = ( x ) ->
  x[ '%is-clean' ] = yes
  return x

p = Proxy {}, handler
p[ 'a' ] = 1
p[ 'b' ] = undefined
console.log p[ 'a' ], p[ 'b' ]
console.log "c" of p, p[ 'c' ]
console.log p
clean p
p[ 'a' ] = 1
console.log p
p[ 'a' ] = 42
console.log p

Выше приведен код с подсказкой для «прозрачного сохранения объекта». в JavaScript. с помощьюharmony-reflectстановится тривиально, чтобы всеget а такжеset действия над объектом прерываются & # x2014; в этой демонстрации мы устанавливаем%is-clean атрибута, чтобы мы могли проверить, были ли изменены элементы объекта, а также мы удалили элементы, для которых было установлено значение undefined.

node --harmony-proxies должен сделать свое дело.

Плюсы: прокси - очень мощная функция, когда они вам действительно нужны.

Минусы: прокси-серверы - это слишком мощная функция, когда они вам не нужны (что должно происходить в большинстве случаев). Также реализация все же должна рассматриваться как экспериментальная.

Что касается документации, то все, что есть на самом деле, - это вики Harmony, в частности эта страница, которая отражает текущую реализацию прокси в V8 (и, следовательно, в узле):

http://wiki.ecmascript.org/doku.php?id=harmony:proxies

потому что они по сути являются синхронными вызовами функций типа. Таким образом, вы не можете реализовать прокси-метод, который является асинхронным.

Посмотрите этот репозиторий GitHub для примеров: https://github.com/mschwartz/SilkJS-Harmony

который представляет собой упрощенную реализацию прокси, что упрощает декларирование и совместимо с ES5. В отличие от собственного прокси, он может использовать только свойства прокси, известные во время создания.

https://github.com/Boulangerie/pimped-proxy

ВАШ ОТВЕТ НА ВОПРОС