早上好,我正在从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();