Kendo ui 将$.proxy与剑道小部件一起使用会产生内存泄漏

Kendo ui 将$.proxy与剑道小部件一起使用会产生内存泄漏,kendo-ui,Kendo Ui,这是我向Stackoverflow提出的第一个问题,所以我希望我做得对: 我在我的应用程序中广泛使用剑道小部件。我为每个小部件类型MyAutocomplete、MyGrid等使用自定义包装器。每个包装器都将代理函数传递给小部件的构造函数: var me=this; $("#mywidget").kendoAutoComplete({ ... dataTextField: me.dataTextField, select: $.proxy(me.onSelecte

这是我向Stackoverflow提出的第一个问题,所以我希望我做得对:

我在我的应用程序中广泛使用剑道小部件。我为每个小部件类型MyAutocomplete、MyGrid等使用自定义包装器。每个包装器都将代理函数传递给小部件的构造函数:

 var me=this;
 $("#mywidget").kendoAutoComplete({
     ...
     dataTextField: me.dataTextField,
     select: $.proxy(me.onSelected, me),
     change: $.proxy(me.onChanged, me), 
 });      
包装器有一个dispose函数,它调用Kendo的“destroy”方法、Jquery的“remove”和“off”方法等

运行我的应用程序会产生严重的内存泄漏。 使用Chrome Dev Tools的Profiles选项卡,我看到保存包装的上下文是代理引用:

proxyjquery.js:775
function () {
            return fn.apply( context, args.concat( core_slice.call( arguments ) ) );
        }
我通过移除代理并传递原始事件处理程序来检查这一点。 虽然不能正常运行,但包装器不再被引用。 我认为:。代理是原始函数的闭包,例如me.onSelected, 因此,“return fn.apply”包含对“fn”的引用,即“me.onSelected”

所以问题是:我对关闭问题的看法正确吗?如果是的话-

如何清除对代理的事件处理程序的引用

非常感谢