1

実行時に同じローカル変数を共有するjqueryプラグインによって初期化されるすべての要素。私はテストを行って、この行が原因であることがわかりました:

var tmp1 = tmp2 = weird_local_var = 0;

私が以下のように書くならば、それは起こりません

var normal_local_var = 0;

これは、tmp1とtmp2が原因ではなく、テスト用のダミー変数にすぎません。テストはhttp://jsfiddle.net/7SeRD/で確認できます。何が起きましたか?

4

2 に答える 2

3

init行を次のように変更できます。

var tmp1=0, tmp2=0, weird_local_var=0, normal_local_var=0;

// or
var tmp1=0; 
var tmp2=0;
var weird_local_var=0;
var normal_local_var=0;

編集:この答えも参照してください:リンク

それから:

var a = b = [] is equivalent to

var a;
b = [];
a = b;

あなたがしているのは、割り当てを連鎖 させることです。

基本的に、weird_local_var(値は0)への参照をtmp2に割り当て、次にその参照への参照(つまり、tmp1-> tmp2)をtmp1に割り当てます。

于 2012-08-30T16:57:56.167 に答える
1

v2とweird_local_varをグローバルとして作成しているのは、それらを宣言するときに「var」キーワードを使用しないことです。

事前に変数を作成して同じことを試してみてください。期待どおりに機能します:http: //jsfiddle.net/MaxPRafferty/2MKgH/

        var v2;
        var weird_local_var;
        var v1 = v2 = weird_local_var = 0;
于 2012-08-30T17:17:23.233 に答える