- [Node JS] 라우터 - 컨트롤러 - 백엔드 연결2024년 01월 10일
- KIMJAVAN
- 작성자
- 2024.01.10.:04
728x90메소드 정의와 객체에서 메소드를 추가하는 것의 차이
submitPost = async ... 같은 방식으로 메소드를 정의하고 basicModel.submitPost = async ... 같은 방식으로 객체에 메소드를 추가하는 것 사이에는 중요한 차이점이 있습니다. 이 두 방식은 코드의 구조와 스코프, 모듈화 방식에서 차이를 보입니다.
- 스코프와 구조:
- submitPost = async ...로 정의하는 경우, submitPost는 현재 스코프(일반적으로는 전역 스코프 또는 현재 모듈의 최상위 스코프)에 함수를 추가합니다. 이 경우 submitPost 함수는 독립적으로 존재하며, 다른 객체나 모듈의 일부가 아닙니다.
- basicModel.submitPost = async ...로 정의하는 경우, submitPost는 basicModel이라는 객체의 속성(메소드)으로 추가됩니다. 이 경우 submitPost는 basicModel 객체의 일부가 되며, 이 객체를 통해서만 접근할 수 있습니다.
- 모듈화와 조직화:
- 객체에 메소드를 추가하는 방식(basicModel.submitPost = async ...)은 관련 기능들을 하나의 객체 안에 모듈화하여 조직화하는 데 유리합니다. 이는 코드의 가독성과 유지보수성을 높이고, 기능적으로 연관된 메소드들을 그룹화하는 데 도움을 줍니다.
- 반면, 독립적으로 함수를 정의하는 방식(submitPost = async ...)은 그 함수가 다른 함수나 객체와 연관성이 적을 때 유용할 수 있습니다. 하지만, 여러 함수가 서로 관련되어 있을 경우, 이 방식은 코드의 조직화에 있어서 불리할 수 있습니다.
- 재사용성과 확장성:
- 객체 기반의 접근 방식은 재사용성과 확장성 측면에서 유리합니다. 객체에 새로운 메소드를 추가하거나 기존 메소드를 변경하는 것이 쉽고, 객체 자체를 다른 부분에서 재사용할 수 있습니다.
- 전역 함수나 독립적인 함수는 특정 스코프나 환경에서만 사용되기 쉽고, 이를 다른 컨텍스트나 객체로 옮기는 것이 더 복잡할 수 있습니다.
따라서, basicModel.submitPost = async ... 같은 방식은 특히 객체 지향적인 접근이 필요하거나, 여러 관련 기능을 하나의 객체에 묶어 관리하고자 할 때 유리합니다. 이는 코드의 가독성, 조직화, 유지보수성 측면에서 많은 이점을 제공합니다.
'자바스크립트 > Node JS' 카테고리의 다른 글
[Node JS] try catch / then catch (0) 2024.01.16 [Node JS] Router - Controller - Model 연결구조 (post) (0) 2024.01.16 [Node Js] 백엔드 config (0) 2024.01.09 [node js] 데이터를 body에 담기 POST / 데이터를 url에 담기 GET (0) 2023.12.29 [nodeJS] nodemon 설치 (0) 2023.11.13 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)