위키의 질문 일 수도 있지만 여전히 있습니다. 어떤 접근 방식은 자바 스크립트 정신에 더 적합 함을 선언합니다자바 스크립트에서 객체를 새로 만들면 어떤 이점이 있습니까?
var Report = function(data) {
var that = this;
that.send = function() { ... };
};
var r = new Report(data); // create and validate the data
r.send(); // encode and send the data
또는
var sendReport = function(data) {
...
// create, validate, encode and send the data
...
};
첫 번째 방법은 더 OO, 더 많은 기능 두 번째 것 같다? 처음에는 Report
의 기능이 더 테스트 가능해 보일 수 있습니다 (예를 들어이 단계에서는 send()
). 또한 상태를 검사 할 때 디버거에서 Report
유형의 객체를보고 싶습니다.
두 번째 방법은 더 간단 할 수도 있지만 테스트는 어렵습니다.
개인적으로 첫 번째 접근 방식을 사용하고 있지만 "잘못된"도메인에 OO "원칙"을 적용하려고하면 질문이 생깁니다. 제 질문에 더 효과적으로 답변 해주세요.
OO 원칙은 "new"연산자와 아무 관련이 없습니다. 당신의 두 번째 목표와 함께 모든 수업을 개발합니다. –
@some_coder 두 번째 방법은 클래스가 아니라 단순한 함수입니다. 그것은 데이터를 가져 와서 전송하고 완료됩니다. – Esailija
JS의 @Esailija에는 다른 언어 (예 : C++/java)와 같은 "클래스"가 없습니다. 첫 번째 접근법은 함수이기도합니다 (함수 포인터라고 볼 수 있습니다). 유일한 차이점은 "var x = new Report (data)"를 사용하여 인스턴스를 만드는 것입니다. 두 번째 접근 방식에서는 "var x = sendReport (data)"를 사용하여 인스턴스를 만듭니다. 아니면 그냥 그 질문을 이해하지 못합니다. –