関数を取得しました -パラメータfunction getdata(after){}
として関数を受け取るように定義しましょう。after
とても自然です。この関数は、スコープ内にいくつかの変数が定義されている他の関数から実行されています。
$('.button').click(function(){
var rel = $(this).attr('rel');
var mooo = $(this).parent().offset().left;
getdata(function(){alert(rel);console.log(moo)});
});
これらの変数を正しい方法で渡すにはどうすればよいでしょうか? ボタンをクリックしたときと同じになるでしょうか? ユーザーがボタンをスパムクリックできるため、グローバル変数にすることはできません。after
名前が示すように、呼び出されているため、関数が10分後にランダムな順序で呼び出される場合でも、クリック中の変数を正確に保持する必要があります。 ajaxリクエストの後。
これは単なる例です - このafter
関数も可変であり、まったく異なる場所から呼び出されるという考えです。
わかりまし-1
た。私が何を求めているのかわからないので、問題を説明しようとします。変数が変数として渡されるときと、渡された関数によって使用される前に変更される可能性のある変数のポインターとして渡されるときがよくわかりません。
ある関数で変数を定義して別の関数に渡す場合、それはポインターですか、それともスタンドアロン変数ですか? オリジン関数を再度呼び出し、それらの変数が変更されると、以前に「スケジュール」された関数に影響しますか? または、変数の前にある単語 var は、まったく新しい変数として定義し、var を含む関数が呼び出されるたびに、この変数をまったく新しいものとしてメモリに割り当て、何が起こるかに依存しませんか?
私は通常、PHP、C、および Delphi のプログラマーですが、特にすべてが非同期でコールバックされている場合、これらの変数スコープがどのように機能するかを理解するのは少し難しいです。