Element и Behavior
От: Antik  
Дата: 16.04.11 21:13
Оценка:
Ситуация:
Есть behavior WindowBehavior
У WindowBehavior вот такие родственные связи:
WindowBehavior <- BaseBehavior <- Behavior
В коде имею Element el.
Eго behavior WindowBehavior

Вопрос такой:
Как определить является ли behavior элемента el наследником от BaseBehavior ?

Среда:
sciter и tiscript
element behavior
Re: Element и Behavior
От: c-smile Канада http://terrainformatica.com
Дата: 16.04.11 21:59
Оценка:
Здравствуйте, Antik, Вы писали:

A>sciter и tiscript


instanceof вестимо.

<html>
  <head>
    <title></title>
    <style>
    
      button#test { prototype: Concrete; }
    
    </style>
    <script type="text/tiscript">
    
    class Base: Behavior
    {
    }
    class Concrete: Base
    {
      function onClick()
      {
        stdout.println(this instanceof Concrete ? "is a Concrete": ""); 
        stdout.println(this instanceof Base ? "is a Base": ""); 
        stdout.println(this instanceof Element ? "is an Element": ""); 
        stdout.println(this instanceof Object ? "is an Object": "not an Object"); 
      }
    }
    </script>
  </head>
<body>

  <button #test>Test</button>

</body>
</html>
Re[2]: Element и Behavior
От: Antik  
Дата: 17.04.11 15:08
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Antik, Вы писали:


A>>sciter и tiscript


CS>instanceof вестимо.


Хмм. Про instanceof знал и пробовал. У меня тут ситуация такая: Element есть, методы из behavior работают, а вот instanceof говорит, что такого родителя у элемента нет. Родитель Element есть, а вот родители из свойства prototype потерялись. Думаю что, озвученная проблема сугубо в моей реализации с копированием ссылки на Element в объект-реестр висящем в View и в дальнейшем вызове методов элементов с behavior через централизованный реестр со своим Api. Я пока "костылём" эту проблему родства обошёл. Будет время сокращу код до более атомарных частей и разберусь, почему так случается.

Спасибо и на этом.
Re[3]: Element и Behavior
От: c-smile Канада http://terrainformatica.com
Дата: 17.04.11 18:41
Оценка:
Здравствуйте, Antik, Вы писали:

CS>>instanceof вестимо.


A>Хмм. Про instanceof знал и пробовал. У меня тут ситуация такая: Element есть, методы из behavior работают, а вот instanceof говорит, что такого родителя у элемента нет. Родитель Element есть, а вот родители из свойства prototype потерялись. Думаю что, озвученная проблема сугубо в моей реализации с копированием ссылки на Element в объект-реестр висящем в View и в дальнейшем вызове методов элементов с behavior через централизованный реестр со своим Api. Я пока "костылём" эту проблему родства обошёл. Будет время сокращу код до более атомарных частей и разберусь, почему так случается.


Обрати внимание на то что prototype это dynamic chain. Т.е. если скажем DOM элемент удален из DOM или заимел другой CSS класс в котором prototype не описан то соотв. instanceof будет вести себя по разному.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.