Slimが何をするのかはわかりませんが、CoffeeScriptは通常、名前空間の汚染を避けるために関数にラップされます。したがって、CoffeeScriptはおそらく次のようなJavaScriptに変換されることになります。
(function() {
var number, opposite, saybye;
number = 42;
opposite = true;
saybye = function() {
alert('hello' + number);
return '';
};
})();
その結果saybye
、HTMLには表示されません。
2012年には実際に使用onclick
するべきではなく、最新のAPIを介してイベントにバインドする必要があります。jQueryを使用している場合は、次のようにします。
coffee:
number = 42
opposite = true
saybye = () ->
alert 'hello'+number
''
$ -> $('input[type=button]').click saybye
jQuery(または同様のもの)を使用していない場合はaddEventListener
、生のDOMオブジェクトで使用するのは難しい方法です。または、それらを自分の中に入れて、window
スコープ保護をバイパスすることもできます。
coffee:
window.number = 42
window.opposite = true
window.saybye = () ->
alert 'hello' + number
何かを返す限り、それについて心配する必要はありません。意味のあるものは何でも返します。戻るundefined
ことが理にかなっている場合もあれば、そうでない場合もあります。明らかな戻り値がない場合は、CoffeeScriptに必要な処理を実行させ、次のようにします。
saybye = () ->
alert 'hello' + number
さらに興味深い問題に移ります。