我想调试一些JavaScript(例如,为Ext JS 4编写的东西与Ext JS 3一起工作)。还有函数define
,它在版本3中不存在。我只想粘贴它的代码,但不知道它在哪里。我打印出来了:
>>> Ext.define.toString()
"function (i, j, h) { if (j.override) { return a.createOverride.apply(a, arguments); } return a.create.apply(a, arguments); }"
但是,我仍然不知道a
是什么。我怎么能让函数对象获得该对象的上下文源?
答案 0 :(得分:1)
您可以将ExtJS 3更新为最新版本。在ExtJS 3.4.1.1中,这是ExtJS的最新版本,您可以从Sencha网站here下载。
正如在ExtJS 3.4.0中引入的那样(一旦ExtJS 4出来),行为必须接近相同,所以你可能需要更少的代码更改才能使它与ExtJS 3一起使用
答案 1 :(得分:1)
摘自:https://extjs-public.googlecode.com/svn/extjs-4.x/include/ext-dev.js
define: function (className, data, createdFn) {
Ext.classSystemMonitor && Ext.classSystemMonitor(className, 'ClassManager#define', arguments);
if (data.override) {
return Manager.createOverride.apply(Manager, arguments);
}
return Manager.create.apply(Manager, arguments);
},
显然,您的a
是Manager
。我怀疑这是否有助于将define
移至Ext 3,但在此你去了:)