私はこれを見ました:Javascriptのネストされた関数からの値を返す
しかし、それは本当に私を助けませんでした(または私はそれを得るにはあまりにも愚かです)。
私の可変スコープはどういうわけかオフになっていて、その理由がわかりません。alert()が期待どおりに動作しません。私が考えていることを説明するために、すべての行にコメントを追加しようとしました。
コメント/ポインタ/回答をありがとうございました!
var g = {}; / is a large object with all kinds of other stuff and functions in it
g.ding = function(){ // my problem function
var baby = 'young'; // i thought I set a local var here
if(someVar==true) { // standard issue if statement
someAPI.class( // using an API that uses a function as its attribute
function(stuff){ // my anonymous function
baby = 'old'; // setting the var to something
}
);
}
return baby; // returning the var
}
alert( g.ding() ); // i expect it to say "old" but it keeps saying "young". why?
新しい編集: Juanの受け入れられた答えは素晴らしいですが、setTimeout()を使用して非同期関数呼び出しを処理し、本質的にそれらを同期させる方法もありませんか?これを読んだ人が答えを知っているなら、私は知りたいです。ありがとう。