CoffeeScriptで自己実行型の無名関数を使用して名前空間を実装しようとしています。
JavaScriptで名前空間を宣言するにはどうすればよいですか?
http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/
また、「未定義」が再定義されないように保護したかったのは、それが記事で推奨されているためです。
したがって、CoffeeScriptでは、次のようなことができます。
((skillet, $) ->
skillet.fry ->
alert('hi');
)( window.skillet = window.skillet || {}, jQuery);
記事で説明されている形式に近づきます。
(function(skillet, $) {
return skillet.fry(function() {
return alert('hi');
});
})(window.skillet = window.skillet || {}, jQuery);
しかし、未定義を追加しようとすると、厳密モードが原因でコンパイルエラーが発生します。
http://arcturo.github.com/library/coffeescript/07_the_bad_parts.html
「undefinedなどの特定の変数は書き込みできなくなりました」
これを回避する方法があるかどうか疑問に思いましたか?厳密モードを使用することには、私が十分に認識していない利点がある可能性があるため、厳密モードをオンのままにしておきたいと思います。しかし、それをオフにする方法をグーグルでさえ...私はnilを思いついた。
見てくれてありがとう!