早上好,我正在从JavaScript的函数编程方法论转向面向对象方法论,并有一个疑问。在函数式编程中,我可以在另一个函数示例中调用一个函数:

function a(){
    // do something and when done call function b
    b();
}

function b(){
    // does more stuff
}


现在,我切换到OOP方法,如何从同一对象中的另一个方法调用对象中的方法。例如:

var myClass = function(){
    this.getData = function(){
        //do a jquery load and on success call the next method
        $('#a').load('file.asp',function(response,status,xhr){
            switch(status){
                case "success":
                    //THIS IS WHERE THE QUESTION LIES
                    this.otherfuntcion();
                break;
            }
        }
    }

    this.otherfunction = new function(){
        // does more stuff
    }
}

p = new myClass();
p.getData();


我能否在成功调用方法b时说this.b()还是要做其他事情?先感谢您。

最佳答案

使用更多的方法和许多实例,这将非常缓慢。改用原型:

var myClass = function(){

}
myClass.prototype = {
    getData: function(){
        //do a jquery load and on success call the next method
        $('#a').load('file.asp',function(response,status,xhr){
            switch(status){
                case "success":
                    //THIS IS WHERE THE QUESTION LIES
                    this.otherfunction();
                break;
            }
        }.bind(this))
    },
    otherfunction: new function(){
        // does more stuff
    }
};


p = new myClass();
p.getData();

09-19 17:41
查看更多