18

我想知道 dojo 小部件中“this.own()”方法的意图。Dojo Api 1.8 文档中提到了此方法,例如在 diijit/form/button 下。我在谷歌上没有找到任何对我有意义的东西。这就是提到该方法的方式:

连接(对象,事件,方法)

已弃用,将在 2.0 中删除,请改用 this.own(on(...)) 或 this.own(aspect.after(...)) 。

4

3 回答 3

21

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

于 2013-03-12T14:28:23.863 回答
9

简短的回答是:.own()一旦小部件本身被销毁,您在内部定义的大部分内容都会被正确删除。使用.own()可防止应用程序中的内存泄漏。

于 2015-10-27T15:52:31.743 回答
3

要从页面中删除小部件,您可以在小部件上调用destroy 或destroyRecursively。

当您这样做时,您使用 this.own 添加的任何内容(dojo/on、dojo/aspect、dojo/topic、dojo/router、相关 DOM 节点或小部件的创建等)都将被删除和/或取消注册自动地。这是通过 dijit/Destroyable 接口实现的。

理解-WidgetBase-own-td4002453.html
相关教程

于 2014-08-05T10:21:02.923 回答