Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript方法使用_Javascript_Oop - Fatal编程技术网

Javascript方法使用

Javascript方法使用,javascript,oop,Javascript,Oop,我正在尝试用JavaScript创建一个类,该类将被继承,而它的一些方法将被重写 我使用以下结构: function MyClass() { this.myvar = null; this.someotherVar = { someFunction: function(a,b){ function1(a,b); }) } // some functions MyClass.prototype.functionA = function() {..} MyClass.prot

我正在尝试用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() {...}
现在我有两个问题:

  • functionC
    functionB
    中使用可能会有问题,因为它是在之后定义的

  • 我如何以正确的方式与
    function1
    中的
    someFunction
    关联

  • 一,。
    functionC
    functionB
    中使用可能会有问题,因为它是在之后定义的

    不,你只需要正确地称呼它:

     function() { this.functionC(); }
     //           ^^^^^
    
    否则将找不到该函数

    当然,您还必须确保只在定义了
    functionC
    之后调用
    functionB

    二,。我如何以正确的方式与
    function1
    中的
    someFunction
    关联

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

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

    极为模糊的标题将不会有助于未来的访问者到该网站与同样的问题。