Javascript获取函数的上下文

Javascript获取函数的上下文,javascript,extjs,extjs4,extjs3,Javascript,Extjs,Extjs4,Extjs3,我想调试一些JavaScript(例如,让为ExtJS4编写的东西与ExtJS3一起工作)。还有函数define,这在版本3中是不存在的。我只想粘贴它的代码,但不知道它在哪里。我把它打印出来: >>> Ext.define.toString() "function (i, j, h) { if (j.override) { return a.createOverride.apply(a, arguments); } return a.create.apply(a, argume

我想调试一些JavaScript(例如,让为ExtJS4编写的东西与ExtJS3一起工作)。还有函数
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
。我怎样才能让function object获得该对象上下文的源呢?

您可以将ExtJS 3更新到最新版本。在ExtJS 3.4.1.1中,这是ExtJS的最新版本,您可以从Sencha网站下载

由于它是在ExtJS 3.4.0中引入的(ExtJS 4推出后),因此行为必须接近相同,因此您可能需要对代码进行较少的更改,以使其与ExtJS 3一起工作,ExtJS 3摘自:


显然,您的
a
Manager
。我怀疑这是否有助于将
define
移动到Ext 3,但现在您可以:)

这是JavaScript:您可以只阅读源代码,不是吗?您也可以尝试使用
Ext.define
,然后使用调试器进入它。
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);
    },