Привет.
Как можно сделать поведение, подобное объекту Style? Т.е пишем
persistentStyle["background-color"] = color("red");
меняем стиль и заодно что-то делаем(например, где-то сохраняем). Т.е аналог undefined property handler, но не property. Хочется сохранить одинаковый синтаксис.
Здравствуйте, c-smile, Вы писали:
CS>Get/SetItem by index это очень low level операция. Делать для неё undefined item handler не представляется возможным.
Тады ой
Будем по-старинке — saveStyle(name, value)
CS>Да и чем он тебе поможет-то? Есть два случая: модификация существующего member и добаление нового.
Да, тут всё же речь идёт о возможности подписки на операции Get/SetItem by index
Здравствуйте, cgibin, Вы писали:
C>Здравствуйте, c-smile, Вы писали:
CS>>Get/SetItem by index это очень low level операция. Делать для неё undefined item handler не представляется возможным.
C>Тады ой Будем по-старинке — saveStyle(name, value)
CS>>Да и чем он тебе поможет-то? Есть два случая: модификация существующего member и добаление нового.
C>Да, тут всё же речь идёт о возможности подписки на операции Get/SetItem by index
Ну зачем по старинке. А давай забабахаем прокси класс:
class StyleProxy
{
function this(obj)
{
this.obj = obj;
}
function commit()
{
// commit and save
for(i in this)
{
if( obj[i]] )
{
saveStyle(i.toString(), this[i]);
obj[i] = this[i];
}
}
}
}
потом:
var persistentStyle = StyleProxy(realStyle);
persistentStyle["background-color"] = color("red");
persistentStyle.commit();
Не проверял, но схема приблизительно такая.
Здравствуйте, yarus23, Вы писали:
Y>Ну зачем по старинке. А давай забабахаем прокси класс:
Да забабахать можно, только ведь профита всё равно нет — мне нужно именно в момент присвоения что-нибудь своё исполнить. А для просто складирования бы завёл объект-мембер, и всё бы в него, гхм... клал
Аргх, и ещё кое-кто куки не почистил