0

我正在尝试在 JavaScript 中创建一个可以继承的类,并且它的某些方法将被覆盖。

我正在使用以下结构:

function MyClass()
{
    this.myvar = null;
    this.someotherVar = { someFunction: function(a,b){ function1(a,b); })

}

// some functions 
MyClass.prototype.functionA =  function() {..}
MyClass.prototype.functionB =  function() {functionC();}

//some functions that would be overrided
MyClass.prototype.function1=  function() {...}
MyClass.prototype.functionC=  function() {...}

现在我有两个问题:

  1. 可能functionC是一个问题,functionB因为它是事后定义的?

  2. 我怎样才能以正确的方式与function1内部联系someFunction

4

1 回答 1

1

1.functionC使用后可能有问题,functionB因为它是在之后定义的?

不,你只需要正确调用它:

 function() { this.functionC(); }
 //           ^^^^^

否则将找不到该功能。

当然,您还必须确保functionBfunctionC定义了一次调用。

2. 我怎样才能以正确的方式与function1内在联系someFunction

一个小问题是它someFunction不是实例的方法,而是另一个对象的方法。要仍然调用正确的function1,您可以将实例的引用存储在变量中:

function MyClass() {
    var self = this;
    this.myvar = null;
    this.someotherVar = { 
        someFunction: function(a,b){ 
            self.function1(a,b);
        }
    };
}
于 2013-06-22T13:17:37.077 回答