당신이 어떻게하는지에 관계없이 "전역 범위를 오염시킬 것"입니다. 당신이 어떻게하는지에 관한 문제 일뿐입니다.
CoffeeScript의 @
기호는 "이 범위"를 의미하는 데 사용됩니다. 따라서 클래스 정의에서도 사용할 수 있습니다. 클래스 선언의 결과는 해당 클래스가 window
객체의 범위에 정의되어 있다는 것입니다 (다른 상황이 아닌 한 여기에서 설명하는 것과 다를 수 있음).
class @CustomClassName
constructor: ->
# constructor stuff goes down...
그러나, 나는 개인적으로, 네임 스페이스와 함께이 작업을 수행하는 것을 선호합니다. 약 google.maps.Map
또는 Actionscript 3 : flash.display.MovieClip
을 작성한 적이 있다고 생각하십시오. 당신이 당신의 클래스를 만들 때, 당신이 말할 수있는 지금
window.customnamespace = window.customnamespace || {}
: 당신의 커피 스크립트 파일의 맨 위에
이의 라인을 따라 뭔가를 넣어 당신의 document.ready
(경우에
class customnamespace.ClassName
constructor: (container) ->
# set the container
@container = container
# etc...
class customnamespace.OtherClassName
constructor: ->
# Another class...
당신 jQuery를 사용하면) 네임 스페이스와 모든 클래스에 대한 전역 액세스 권한을 갖게됩니다.
예 :
$(document).ready(function(e) {
var c = new customnamespace.ClassName($('#container'));
var other = new customnamespace.OtherClassName();
만들기 의미?