Javascript获取函数的上下文

时间:2014-01-03 11:29:48

标签: javascript extjs extjs4 extjs3

我想调试一些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是什么。我怎么能让函数对象获得该对象的上下文源?

2 个答案:

答案 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);
    },

显然,您的aManager。我怀疑这是否有助于将define移至Ext 3,但在此你去了:)