«Dojo way» для привязки контекста к функции используется с помощью lang.hitch
:
hitch () возвращает функцию, которая будет выполнять заданную функцию в данном контексте.
blockquote>https://dojotoolkit.org/reference-guide/1.10/dojo/_base/lang.html#hitch
Вот как это делается сделано с чистым Dojo:
require([ 'dojo/_base/lang', 'dojo/dom', 'dojo/dom-construct', 'dojo/on' ], function( lang, dom, domConstruct, on ) { function onClick () { console.log('Got clicked context: ', this) } var link = domConstruct.create('a', { textContent: 'Click me!', href: '#' }, dom.byId('my-div')); on(link, 'click', lang.hitch(this, onClick)); });
Я думаю, что имеет смысл подумать об этом с точки зрения взаимодействия контейнера с вызывающей стороной метода EJB как истинного монитора ... поэтому я хотел бы использовать вышибалу метафора в различных сценариях.
См. на этой странице хорошее описание / обзор атрибутов транзакции.
Обязательно (ТРЕБУЕТСЯ @TransactionAttribute)
Ночной клуб
Приходи в клуб, нужен билет для входа. Если у вас его нет, он будет (куплен?) Отдан вам у двери.
Транзакция - это БИЛЕТ.
Контейнер - БУНСЕР.
Требуется новый (REQUIRES_NEW @TransactionAttribute)
Комедийные клубы, минимум 1 напиток, повторный вход запрещен.
Приходить в клуб, запрещать еду / напитки на улице, вы должны оставить их у дверей. Чтобы попасть внутрь, вы должны покупать минимум 1 напиток каждый раз, когда выходите и снова входите.
Транзакция - НАПИТОК.
Контейнер - БУНСЕР.
Приостановка транзакции - УХОД ЗА ДВЕРЬЮ.
Поддерживает (ПОДДЕРЖИВАЕТ @TransactionAttribute)
Домашняя вечеринка
Приходите на вечеринку, алкоголь разрешен. Мы впустим вас, если у вас есть свой алкоголь, если нет, мы впустим и вас.
Транзакция - АЛКОГОЛЬ.
Контейнер - ХОЗЯИН.
Обязательно (ОБЯЗАТЕЛЬНО @TransactionAttribute)
Вечеринка только по приглашению
Приходите на вечеринку, требуется приглашение для входа: если у вас его нет и вы пытаетесь войти, вышибала звонит властям.
Транзакция - ПРИГЛАШЕНИЕ.
Контейнер - ХОЗЯИН.
Вызов исключения - это ВЫЗОВ ВЛАСТИ.
Не поддерживается (NOT_SUPPORTED @TransactionAttribute)
Концерт, камеры запрещены.
Присутствовать на концерте, камеры запрещены. Вы можете оставить его у двери и забрать, когда выйдете.
Транзакция - КАМЕРА.
Контейнер - ДВОРНИК.
Приостановка транзакции - УХОД ЗА ДВЕРЬЮ.
Никогда (НИКОГДА @TransactionAttribute)
Танцы в старших классах
Приходить на танцы, алкоголь запрещен. Если вы попытаетесь проникнуть в него, и вас поймают, сопровождающий позвонит властям.
Транзакция - АЛКОГОЛЬ.
Контейнер - это ЧАПЕРОН. Вызов исключения - это ВЫЗОВ ВЛАСТИ.
Вы можете думать о них с точки зрения Сотрудничество . Допустим, вы повар, и у вас есть дюжина печей для работы. Вам нужно испечь несколько тортов. В этом примере вы - вызываемый метод, печь - транзакция, а ваш начальник - вызывающая сторона.
Надеюсь, что помогает.