2013-02-04 5 views
0

지금 당장 Node.js에서 JavaScript로 코딩 중이며 개인 및 공개 속성 (및 메소드)이있는 클래스를 사용하는 편리한 방법이 있는지 스스로 묻습니다. 나는 PHP에서 왔기 때문에 비슷한 구조가 있습니까?JavaScript가있는 OOP

저는 모듈을 사용하여 그 순간을 해왔습니다. 공용 메서드와 vars를 내보내고 나머지는 비공개로 유지하는 것이 맞습니까? JavaScript가있는 OOP에 관한 좋은 가이드가 있습니까?

+0

당신은 자바 스크립트가 고전적인 OOP 대신 프로토 타입 모델을 사용한다는 것을 알고 있습니까? – PeeHaa

+0

자바 스크립트는 익숙하지 않은 방식으로 구성되어 있습니다. 약간의 조정을 한 후에는 동일한 기능을 가지고 있지만 다른 방법으로 사용할 수 있습니다. – Brad

+0

다음은 주제에 대한 유용한 정보입니다. http://www.2ality.com/2012/01/js-inheritance-by-example.html –

답변

2

자바에서는 "개인"이라는 개념이 실제로 존재하지 않지만 일단 언어에 대해 조금만 이해하면 가능합니다. https://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript

+0

감사합니다! 하지만 노드에서 각 클래스/객체를 다른 모듈에 넣어야합니까? –

+0

그래, 그게 내가하는 일이야. 클래스가 정의 된 곳을 쉽게 찾아 낼 수있게 해준다. – robbrit

1

자바 스크립트 에뮬레이션 (또는 오히려 대체) 할 수 프로토 타입을 사용하는 일부/대부분의 클래스 동작하지만, 클래스에 사용하는 사람에게, 구문이 조금 혼란 스러울 수 있습니다 :

여기에 자바 스크립트 OOP 좋은 소개입니다. Javascript로 전문적으로 작업한다면 프로토 타이핑을 배우는 것이 어느 정도 필수적입니다.

ECMAScript 6 아마도 결국 자바 스크립트를 사용하게 될 것이므로 클래스 지원을 추가한다고합니다. 그래도 아직 사용할 수 없습니다 : -/

Typescript은 자바에 대한 몇 가지 클래스 지원 및 강력한 입력을 추가하는 다소 논쟁의 여지가 많은 자바 스크립트 확장 프로그램입니다. 표준 Javascript로 컴파일되거나 node.js에 모듈로 추가 될 수 있습니다.

0

실제로 "클래스 구조"를 달성 할 수 있습니다. 실제로 수행 할 작업은 개체 리터럴을 클래스처럼 동작하게 만드는 것입니다.

특히 혼란 스러울 수있는 이유를 이해할 수 있습니다. 특히 클래스가 없을 때 백본 JS 문서를 읽을 때 (클래스를 개체로 정의 할 때) 특히 그렇습니다! 개체 정의 만.

Backbone과 같은 프레임 워크를 사용하면 구조와 같은 클래스로 작업하기 때문에 훨씬 쉽게 이해할 수 있습니다. 당신이 시작할 수있는 좋은 장소 일 수 있습니다.

관련 문제