0

我有一堂课有 2 种特权方法:

function ABC() {
     this.methodA = function(){

     }
     this.methodB = function(){

     }
}

是否可以调用methodAinside methodB,如果可以,如何调用?

4

2 回答 2

2

是的,但你需要参考它。如果methodB将始终使用相同的上下文调用,那么您可以methodAmethodBusing调用this.methodA();

var a = new ABC;
a.methodB(); // Correctly calls methodA();

var func = a.methodB;
func(); // Fails because `this` is not referring to `a` anymore

如果您执行以下操作,它将双向工作:

function ABC() {
     var methodA = this.methodA = function(){

     }
     this.methodB = function(){
         methodA();
     }
}
于 2013-09-12T03:26:15.113 回答
1
function ABC() {
     var self = this;
     this.methodA = function(){

     }
     this.methodB = function(){
         self.methodA();
     }
}
于 2013-09-12T03:23:44.833 回答