どうやっても「グローバルスコープを汚染する」でしょう。それはあなたがそれをどのように行うかの問題です。
CoffeeScriptの@
記号は、「このスコープ」を意味するために使用されます。したがって、クラス定義で使用することもできます。クラス宣言の結果は、クラスがwindow
オブジェクトのスコープで定義されることです (他の状況がない限り、ただし、ここで説明していることはそうではありません)。
class @CustomClassName
constructor: ->
# constructor stuff goes down...
ただし、個人的には名前空間でこれを行うことを好みます。google.maps.Map
Actionscript 3:について考えてみてくださいflash.display.MovieClip
。
CoffeeScript ファイルの先頭に、次の行に沿って何かを置きます。
window.customnamespace = window.customnamespace || {}
クラスを作成するときに、次のように言うことができます。
class customnamespace.ClassName
constructor: (container) ->
# set the container
@container = container
# etc...
class customnamespace.OtherClassName
constructor: ->
# Another class...
document.ready
(jQuery を使用している場合) では、その名前空間とそのすべてのクラスにグローバルにアクセスできます。
例:
$(document).ready(function(e) {
var c = new customnamespace.ClassName($('#container'));
var other = new customnamespace.OtherClassName();
わかる?