Extjs 5 - 静态函数从同一个 class 调用其他静态函数
Extjs 5 - static function call other static function from same class
我有这样的代码:
Ext.define( 'someClass', {
statics : {
methodA : function( ) { return 'A'; },
methodAB : function( ) {
var A = this.methodA();
return A + 'B';
}
}
} );
我在访问静态 methodA
时遇到问题。
有人可以帮我做这件事的正确方法是什么吗?
您应该使用完全限定的 className.methodName() 语法调用静态。 'this' 里面的 static 不会是你想的那样。例如,如果从事件处理程序调用它可能是 'window' 对象,它肯定没有 methodA() 方法。在其他情况下 'this' 可能是原型。在那种情况下,您可能会避开这种语法,但它具有误导性并且可能会导致未来的错误。
我有这样的代码:
Ext.define( 'someClass', {
statics : {
methodA : function( ) { return 'A'; },
methodAB : function( ) {
var A = this.methodA();
return A + 'B';
}
}
} );
我在访问静态 methodA
时遇到问题。
有人可以帮我做这件事的正确方法是什么吗?
您应该使用完全限定的 className.methodName() 语法调用静态。 'this' 里面的 static 不会是你想的那样。例如,如果从事件处理程序调用它可能是 'window' 对象,它肯定没有 methodA() 方法。在其他情况下 'this' 可能是原型。在那种情况下,您可能会避开这种语法,但它具有误导性并且可能会导致未来的错误。