lomeo: (лямбда)
[personal profile] lomeo
А нет в javascript чего то вроде питоновского __getattr__ или смолтолкового doesNotUnderstand? Нужно, например, прокси соорудить, а механизма получения методов проксируемой сущности нет. Так что их руками передавать?

UPD: оборачиваемый объект удалённый. То, что у него есть какой-то метод становится известно только в момент вызова.

Date: 2009-04-10 12:13 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
только расширением: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/noSuchMethod

Date: 2009-04-10 12:17 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
конкретно для прокси, что мешает пройтись по всем методам проксируемого объекта?

Date: 2009-04-10 02:09 pm (UTC)
From: [identity profile] lomeo.livejournal.com
У меня объект удалённый. Методы его известны только программисту. Скажем RPC.

Date: 2009-04-10 02:13 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
то есть, объекта в js у тебя нет, у тебя есть объект чтобы делать RPC. и ты просто хочешь вместо foo.call("bar", 1, 2, 3) писать foo.bar(1, 2, 3)?

Date: 2009-04-10 03:40 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Так точно! Я уже понял, что выражаю свои мысли невнятно :(

Date: 2009-04-10 02:10 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Прикольно, спасибо!

Date: 2009-04-10 02:19 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
да, getters, оказывается, тоже есть: https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/Object

Date: 2009-04-10 12:23 pm (UTC)
From: [identity profile] dmitriid.livejournal.com
http://stackoverflow.com/questions/235289/how-can-i-list-the-methods-of-a-javascript-object-in-vs-command-window

Date: 2009-04-10 02:10 pm (UTC)
From: [identity profile] lomeo.livejournal.com
У меня объект удалённый. Методы его известны только программисту. Скажем RPC.

Date: 2009-04-13 07:56 am (UTC)
From: [identity profile] dmitriid.livejournal.com
RPC на Яваскрипте? 0_о

Ну, тут я уже даже не знаю, что сказать :)

Date: 2009-04-13 09:53 am (UTC)
From: [identity profile] lomeo.livejournal.com
Ну, да. Это внутренний проект. Просто с веб-мордой.

Date: 2009-04-10 12:32 pm (UTC)
From: [identity profile] lionet.livejournal.com
Как это нет? for(_ in _) плюс .hasOwnProperty?

Date: 2009-04-10 02:11 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Уже третий! Я javascript не настолько не знаю, у счастью :-)
У меня объект удалённый. Методы его известны только программисту. Скажем RPC.

Date: 2009-04-10 02:19 pm (UTC)
From: [identity profile] vidmich.livejournal.com
ну, теоритически можно сделать в этом прокси-объекте функцию типа checkMethod которая бы пинала удаленный объект проверяя есть ли там такой метод и потом создавала соответствующую функцию в прокси-объекте... ну или зарестриктить удаленные объекты чтобы у них была функция которая возвращает список всех их функций и пинать ее при создании прокси-объекта и создавать свои функции для них

Date: 2009-04-10 03:14 pm (UTC)
From: [identity profile] zelych.livejournal.com
кажется, в следующей версии хотят сделать такое

Date: 2010-03-12 04:53 pm (UTC)
From: [identity profile] virkony.livejournal.com
Если нужна портируемость, а в JS какой-то версии нету того что надо, то можно сделать явный метод для базового объекта, который будет искать в аттрибутах объекта и если не найдет, то будет возвращать результат defaultAttribute или что-то в этом роде.
Т.е. использование таких объектов, которые могут быть проксированы:
myBall.g("doThrowTo")(someBasket);
x *= myBall.g("getColor").Alpha;

в первом случае defaultAttribute должен возвращать функцию, соответственно.

Date: 2010-03-15 12:36 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Судя по тому, что коммент написан в пятницу, некрофилия у вас от усталости :-)

Profile

lomeo: (Default)
Dmitry Antonyuk

December 2015

S M T W T F S
  12345
6789101112
131415 16171819
20212223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2017 03:51 pm
Powered by Dreamwidth Studios