0

私の JavaScript コードには、グローバル変数を動的に更新して、それらの変数の値に基づいて特定のアクションを実行するという要件があります。

例:

this.decEnabled + this.properties.itemIndex = false;  

ここで、「this.properties.itemIndex」はアイテムを区別するのに役立つ整数であり、this.decEnabled は作成しようとしているグローバル変数です。しかし、エラーが発生します: Uncaught exception: ReferenceError: Cannot assign to 'this.incEnabled + this.properties.itemIndex'.

やってはいけないことをしようとしていると思います。私は何が間違っているのだろうかと思っています。上記の変数は文字列であるため、文字列値も割り当てようとしました。それでも同じエラーです。提案してください。

ありがとう、
スネハ

4

1 に答える 1

2

あなたが書いたことには、まったく正しくないように思えることが 2 つあります。

  1. JavaScript 代入演算子 (=)。

    この演算子は、次のように動作します。

    a) 「=」記号の右側から式を評価します。
    b) 結果を左側の式に代入します。

    あなたの例の問題は(b)です。合計を実行しているため、左側の式は割り当てられません(算術演算を含む式は割り当てられません)。

  2. グローバル変数: this.decEnabled

    グローバル変数は、スコープがグローバル スコープである変数です。つまり、誰でもその変数にアクセスできます。ドキュメントの先頭 (または関数のスコープ外) に次のように記述することで、ドキュメントのグローバル スコープでグローバル変数を定義できます。

    var global_var;
    

    あなたの説明では、グローバル変数「this.decEnabled」を作成しようとしていると言っています。ただし、'decEnabled' をスコープにバインドしているため (この場合は、'this' 演算子を使用して現在のスコープを参照している)、これをグローバル変数にすることはできません。

あなたが受け取っているエラーは(1)からのものです。

値を比較しようとしている場合、探している等価演算子は「==」または「===」です。

于 2013-02-16T10:48:39.730 に答える