0
我很想知道是否有一种获取调用函数的名称而不必使用arguments.callee.caller(因为这已被弃用)并命名我的函数。比方说,我有这样的代码:Ext JS:获取调用函数的名称
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,但我敢肯定这是令人难以接受的......