Dev/Javascript
-
자바스크립트 - 객체지향 프로그래밍 - Class 만들기Dev/Javascript 2019. 10. 25. 23:37
자바스크립트는 프로토타입 기반 객체지향 언어이기 때문에 Java와 같은 언어처럼 클래스가 없습니다. 그러나 프로토타입 체인과 생성자함수를 이용하면 클래스와 같은 기능을 하는 함수를 만들 수 있습니다. 이번엔 자바스크립트의 특성을 이용해 클래스를 만드는 makeClass 함수를 만들어보도록 하겠습니다. - makeClass는 상속받을 객체를 인자로 받아 부모 함수를 상속받는 자식 클래스를 만듭니다. 만들고자 하는 함수의 활용은 다음과 같습니다. var SuperClass = makeClass(obj); var SubClass = SuperClass.makeClass(obj); 함수 makeClass는 다음과같이 구성됩니다. function makeClass(obj) { /* 1. 자식클래스 생성 2. 생성..
-
자바스크립트 - 객체지향 프로그래밍 - 캡슐화 (2)Dev/Javascript 2019. 10. 25. 21:44
이전 포스팅에서 자바스크립트의 기본적인 캡슐화 구현 방법을 알아보았습니다. 이번엔, 여러 유명 자바스크립트 라이브러리에서 사용하는 캡슐화 패턴을 알아보도록 할게요. - 모듈패턴 var Person = function(arg) { var name = arg ? arg : "junyoung"; return { getName: function() { return name; }, setName: function(arg) { name = arg; } }; }; var me = Person(); console.log(me.getName()); 위의 코드를 보면 Person 함수를 호출하여 객체를 리턴받는 것을 볼 수 있죠. (이전 예제는 new로 인스턴스를 생성합니다) 리턴되는 객체에는 Person 함수의 지역변수..
-
자바스크립트 - 객체지향 프로그래밍 - 캡슐화 (1)Dev/Javascript 2019. 10. 25. 20:56
자바스크립트의 캡슐화를 알아보기 전, 객체지향 프로그래밍에서의 캡슐화부터 간단히 짚고 넘어가도록 하겠습니다. - 객체지향 프로그래밍에서의 캡슐화란 ? 비슷한, 관련된 역할을 하는 속성과 메소드들을 하나의 틀(클래스 등) 안에 담는 것을 의미합니다. - 캡슐화를 왜 할까요? 결론부터 말씀드리면 가장 중요한 이유는 정보은닉 때문입니다. 정보은닉이란, 객체에 대한 구체적인 정보를 노출시키지 않도록 하기 위한 기법입니다. - 예를들면? 사원의 속성 중에 "월급" 이라는 속성이 있다고 합시다. 만약 Public으로 누구나 "월급"이라는 속성에 접근할 수 있다면, 사원.월급 = -500000 와 같은 현실세계에선 불가능한 코드를 작성할 수 있게 되죠. 그러나, 캡슐화를 해서 월급이라는 속성을 직접적으로 접근을 못하..