0

ここの別のスレッドから、マークアップベースの JS 実行 Garber-Irish ソリューションに関するこの素晴らしいチュートリアルを見つけました。

http://www.viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution/ .

私は、Coffeescript でこの部分をどのように実行できるかを調べています。

これは問題なく動作します:

SITENAME.surveys.show = ->
  alert "Hello CoffeeScript"

レンダリングするもの:

SITENAME.surveys.show = function() {
  return alert("Hello CoffeeScript");
};

これはあまり幸せではありません:

SITENAME.surveys.new = ->
  alert "Hello CoffeeScript"

SITENAME.surveys["new"] = function() {
  return alert("Hello CoffeeScript");
};

私は Coffeescript を初めて使用し、現在 codeschool.com のコースを受講しています。「new」キーワードはcoffeescriptにとって特別なものだと思います。

これに対する回避策はありますか?

ありがとう!

4

2 に答える 2

2

を使用する必要がある場合は、 を使用して関数を定義newできます。[]

SITENAME.surveys['new'] = ->
  alert "Hello CoffeeScript"

そしてそれを呼び出す:

SITENAME.surveys['new']()

デモ: http://jsfiddle.net/ambiguous/Y3qnt/

リンクを簡単に確認すると、次のような方法で関数にアクセスすることが示唆されます。

controller = 'surveys'
action     = 'new'
SITENAME[controller][action]()

とにかく、メソッドは常に(文字列)名前で参照するため、メソッドが何と呼ばれるかは問題ではありません。

于 2012-06-18T16:41:55.453 に答える
2

newは JavaScript では特別であり、CoffeeScript はこれを認識しているため、予約済みのキーワードを使用してメソッドに名前を付けるのは悪い習慣ですが、実際に機能するコードを発行しています。

于 2012-06-18T16:12:23.097 に答える