ExtJS:获取调用函数'的名字
Ext JS: Get calling function's name
我很想知道是否有一种Ext方法可以获得调用函数的名称,而不必使用arguments.cacallee.cacaller(因为这已经被弃用)并命名我的函数。假设我有这个代码:
Ext.Loader.setConfig({
enabled: true
});
Ext.define('Mixin', {
logWarning: function logWarning() {
console.log('warning: ' + this.$className + '::' + arguments.callee.toString()); // displays function logWarning() ...
console.log('warning: '+ this.$className + '::' + arguments.callee.caller.toString()); // displays functions() ...
}
});
Ext.define('My.Panel', {
extend: 'Ext.panel.Panel',
mixins: ['Mixin']
});
Ext.application({
name: 'Test',
launch: function() {
Ext.define('MyPanel', {
extend: 'My.Panel',
width: 200,
height: 300,
initComponent: function() {
this.callParent();
this.logWarning();
}
});
Ext.create('MyPanel', {
renderTo: Ext.getBody()
});
}
});
在我的logWarning函数中,第一个console.log字符串显示了函数名称,因为我命名了该函数。然而,在大多数Ext应用程序中,函数保持匿名,因为没有必要,因为我使用的是this.logWarning这样的作用域,并且在代码中维护相同的两个名称是没有意义的。
我想知道的是,有没有一种方法可以使用我不知道的Ext函数来获取调用函数的名称?我可以用这个很容易地获取className$className,但我相信这是不受欢迎的。。。
由于在Sencha论坛上的讨论,我最终使用了arguments.callee.caller.$name
。这并不理想,但它目前已经完成了任务。。。当/如果它被弃用,我将不得不重新审视这个问题。
编辑
这是很久以前写的,从那以后我就不再使用这个属性了。相反,我抛出了一个错误,并解析堆栈跟踪以获得该方法,因为最初的答案并不是我需要的。
相关文章:
- 所需响应的主干无限集合获取调用
- html获取调用onsubmit的位置
- 获取调用属于其属性或名称空间原型之一的函数的对象
- 如何获取调用函数的元素的 id
- 如何获取调用我的函数的元素的 ID、类或 HTML 标记
- 如何获取调用方法的函数的名称
- 如何与 JQuery WHEN 和 THEN 同步两个骨干获取调用
- 如何使用requireJs缓存获取调用的结果
- Javascript 获取调用堆栈上的函数数量
- Nodejs 中用于获取调用的未捕获异常错误
- Jqgrid 在第二次获取调用后在查询字符串中提交错误的参数
- Javascript 函数在放在母版页上时不会从代码隐藏处获取调用
- javascript:获取调用函数的名称
- 使用vue.js获取调用元素
- 获取调用函数的当前元素
- 如何在获取调用函数返回的内容时将局部变量传递给回调
- 在JavaScript/JQuery中获取调用方的ID
- 如何获取调用Javascript函数的控件
- 获取调用其onclick中定义的JavaScript函数的元素(<a>")
- 获取调用注入脚本的选项卡的url