4

私は HTML キャンバスをいじっており、Javascript を使用してテキストを書き込んでいます。

これを行っているときに、見つけるのに時間がかかった単純なエラーを作成しました。私が書いた:

context.fillText = ("My message", x-coord, y-coord);

等号は、私が期待した動作を妨げました。しかし、私が得られないことが 1 つあります。Chrome の Javascript コンソールでこのコードがエラーにならないのはなぜですか?

これは有効な Javascript ですか? はいの場合: 等号があるときにコードが何をするか説明していただけますか?

4

3 に答える 3

6

はい、有効な Javascript です。コンマ演算子を使用しています。これは、左側の式を評価し、次に右側の式を評価し、右側の式の値を返します。

"My message"x-coordには副作用がないため、次と同じです。

context.fillText = y-coord;

または:

"My message"; // Does nothing
x-coord;      // Does nothing
context.fillText = y-coord;
于 2012-06-13T16:56:26.823 に答える
4

コンマ演算子は各式を評価して最後の式を返すため、右側は次のように評価されます。

y-coord 

...そしてcontext.fillTextそれに等しく設定されています。

于 2012-06-13T16:55:50.700 に答える
1

の違いについて質問する場合は、

context.fillText = ("My message", x-coord, y-coord);

context.fillText("My message", x-coord, y-coord);

答えは、=記号の右側に式を割り当てているcontext.fillTextため、引数でメソッドを呼び出すのではなく、メソッド自体を上書きしようとしているということです。

于 2012-06-13T16:59:14.777 に答える