从被调用的函数调用javascript函数(在原始函数中)?

时间:2009-05-13 11:42:39

标签: javascript function reference

无论如何从另一个函数调用函数......有点难以解释。继承人的例子。一个函数加载html页面,准备好后调用原始函数。

我想我需要传递一个参考但不确定如何做到这一点......如果我把它设置为“这个” - 它似乎不起作用

任何想法?

order.prototype.printMe = function(){
    order_resume.loadthis("myTestPage.html", "showData");
}

order.prototype.testme= function(){
     alert("i have been called");
}

//Then when in "loadthis" need to call 

orderRsume.prototype.loadthis= function(){
    //  DO SOME STUFF AND WHEN LOADS IT ARRIVES IN OnReady
}

order.prototype.OnReady= function(){
  /// NEED TO CALL ORIGINAL "testme" in other function
}

2 个答案:

答案 0 :(得分:3)

我不清楚你真正想做什么。在JS中,函数是first-class objects。因此,您可以将函数作为参数传递给另一个函数:

Cook("lobster", 
     "water", 
     function(x) { alert("pot " + x); });

order.somefunc = function(){
    // do stuff
}

order.anotherone = function(func){
    // do stuff and call function func
    func();
}

order.anotherone(order.somefunc);

如果您需要从它的正文中引用未命名的函数,则应遵循以下语法:

order.recursivefunc = function f(){
    // you can use f only in this scope, afaik
    f();
}; 

答案 1 :(得分:0)

我稍微改变了你的load这个函数的签名,让它传递给实际加载的命令。

我还假设你的doSomeStuff函数接受一个回调函数。我假设它可能是一个AJAX调用,所以在AJAX调用结束时调用回调函数是微不足道的。如果您需要有关如何从AJAX调用触发此回调函数的更多信息,请评论此答案。

order.prototype.printMe = function(){
    order_resume.load(this, "myTestPage.html", "showData");
}

order.prototype.testme= function(){
     alert("i have been called");
}

//Then when in "loadthis" need to call 

orderRsume.prototype.load = function(order, page, action){
    //  DO SOME STUFF AND WHEN LOADS IT ARRIVES IN OnReady
    doSomeStuff(page, action, function()
    {
        order.OnReady();
    });
}

order.prototype.OnReady= function(){
  /// NEED TO CALL ORIGINAL "testme" in other function
  this.testme();
}