Подтвердить что ты не робот

Использование метода this.own() в dojo

Мне бы хотелось узнать намерение метода this.own() в виджетах dojo. Этот метод упоминается в документации dojo Api 1.8, например, в diijit/form/button. Я не нашел ничего, что имело смысл для меня в Google. Так упоминается метод:

connect (obj, event, method)

Устаревший, будет удален в 2.0, используйте this.own(on (...)) или this.own(aspect.after(...)).

4b9b3361

Ответ 1

Функция own определена в dijit/Destroyable, которая является базой dijit/_WidgetBase и, следовательно, большинством виджетов.

dijit/Destroyable используется для отслеживания дескрипторов экземпляра, а затем уничтожить их, когда экземпляр будет уничтожен. Приложение должно вызывать destroy() в экземпляре, чтобы освободить дескрипторы

http://dojotoolkit.org/reference-guide/1.8/dijit/Destroyable.html

http://dojotoolkit.org/reference-guide/1.8/dojo/Evented.html

Ответ 2

Короткий ответ: большинство вещей, которые вы определяете внутри .own(), корректно удаляются после уничтожения самого виджета. Использование .own() предотвращает утечку памяти в вашем приложении.

Ответ 3

Чтобы удалить виджет со страницы, вы можете либо вызвать destroyRecursively вашего виджета.

Когда вы это сделаете, все, что вы добавили с помощью this.own(dojo/on, dojo/aspect, dojo/topic, dojo/router, создание связанной DOM node или виджет и т.д.) будут удалены и/или незарегистрированы автоматически. Это осуществляется через dijit/Destroyable интерфейс.

Understanding-WidgetBase-own-td4002453.html
Связанный учебник