4

私はちょうど CoffeeScript を学んでいて、普通の JavaScript で通常行うことをしようとしています。

これが私がやろうとしたことです:

initializeWebGL = (canvas) ->
    gl = canvas.getContext "webgl" or canvas.getContext "experimental-webgl"

これは、私が期待するものにコンパイルされます:

var initializeWebGL;

initializeWebGL = function(canvas) {
  var gl;
  return gl = canvas.getContext("webgl" || canvas.getContext("experimental-webgl"));
};

本当に欲しいものを得るには、getContext引数を括弧で囲む必要があります。

initializeWebGL = (canvas) ->
    gl = canvas.getContext("webgl") or canvas.getContext("experimental-webgl")

私が欲しいものを生み出す:

var initializeWebGL;

initializeWebGL = function(canvas) {
  var gl;
  return gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
};

2 番目の例のように、関数呼び出しの周りに括弧を追加するよりも、私が達成しようとしていることを行うためのより良い方法はありますか?

4

2 に答える 2

5

2 番目の例のように、関数呼び出しの周りに括弧を追加するよりも、私が達成しようとしていることを行うためのより良い方法はありますか?

いいえ、そうは思いません。私の経験則では、関数呼び出しとその引数が行の最後にある場合は括弧を省略してもかまいません。それ以外の場合は括弧を含めます。

わかった

someFunction 1, 2, 3

良くないですよ

someFunction 1, someOtherFunction 2, 3

一般的に、過度に簡潔で簡潔なステートメントは避けるようにしています。それらは精神的にも扱いにくく、デバッガーでステップスルーするのはよりトリッキーです。

于 2013-11-02T20:46:39.237 に答える
3

私はそれがより良い方法だとは言いませんが、次のようなことができます:

initializeWebGL = (canvas) ->
  gl = canvas.getContext "webgl"
  gl = gl or canvas.getContext "experimental-webgl"

私は個人的に、少ないコードを書くよりも読みやすさを好みます。

initializeWebGL = (canvas) ->
  gl = canvas.getContext "webgl"
  if !gl? then gl = canvas.getContext "experimental-webgl"
于 2013-11-02T21:48:56.233 に答える