2009-05-13 90 views
0

他の関数から関数を呼び出すにはどうしようもありません。例のheres。 1つの関数はhtmlページを読み込み、準備ができたら元の関数を呼び出します。私は「この」に設定すると呼び出された関数から(元の関数で)javascript関数を呼び出していますか?

私はこれを行う方法を、私は参照を渡す必要があると思うが、よくわからない... -

任意のアイデアを動作するようには思えないのですか?

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 
} 

答えて

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(); 
}; 
+0

ありがとうございます。 –

0

ロード機能のシグネチャを少し変更して、実際にロードする命令を渡すようにしました。

また、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(); 
} 
関連する問題