2011-04-01 8 views
4

나는 객체 지향 JavaScript를 읽고있다. 이 링크는 제가 읽고있는 링크입니다. Introduction to Object-Oriented JavaScript. 그러나 나는 또한 책 Practical CakePHP Projects을 읽고있다. 클래스를 정의하기 위해 클래스를 사용하는 이유는 무엇입니까? 내가 읽은 것부터 function 키워드를 사용하여 클래스를 정의해야합니다. 아래 코드는이 책의 한 예입니다. 저자가 잘못되었거나 누락 된 것이 있습니까?자바 스크립트에서 클래스 정의하기

var TravelMapprManager = Class.create({ 

    //Constructor 
    initialize: function(map_container) { 
     this.map_container = map_container; 

     //Start the map. 
     Event.observe(window, 'load', this.displayMap.bind(this)); 

     //Observe the map buttons. 
     Event.observe(document, 'dom:loaded', this.initObservers.bind(this)); 
    }, 

답변

7

Class는 (는) 키워드가 아닙니다. 이것은 생성자 (언급 한 함수)와 사용자를위한 prototype을 설정하는 create 함수를 포함하는 라이브러리 코드의 네임 스페이스입니다.

당신이 특정 라이브러리의 문서에 대한 자세한 내용을보실 수 있습니다 : http://api.prototypejs.org/language/Class/create/

Class.create 클래스를 생성하고 클래스의 인스턴스의 생성자 함수를 반환합니다. 생성자 함수 (일반적으로 new 문의 일부로)를 호출하면 클래스의 initialize 메서드가 호출됩니다.

1

내가 읽고있는 책에서 일부 라이브러리를 사용하고 있는지 궁금합니다. 그것은 당신의 직접적인 질문에 대답 할 수 있습니다.

: 아래

은 매우 빠른 예입니다 (나는 그것을 테스트하지했듯이 희망 정확하지만, 당신에게 아이디어를 줄 것이다) 당신이 뭘 하려는지의 ( http://www.phpied.com/3-ways-to-define-a-javascript-class 그냥 도움이 될 수있는이 발견)
function TravelMapprManager() { 
} 

TravelMapprManager.prototype.initialize = function(mapContainer) { 
    this.mapContainer = mapContainer; 

    ... 
}; 

var mappr = new TravelMapprManager(); 
mappr.initialize(...); 
+0

phpied article이 댓글에 포함될 예정이므로 도움이되기보다는 모든 것을 혼란스럽게합니다. –

관련 문제