본문 바로가기

분류 전체보기

(664)
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 4 앞서 작성한 예제 코드를 정리해 보겠습니다. 다음과 같이 subClass 함수가 어느 정도 모양새를 갖추었습니다. function subClass(obj) { var parent = this; var F = function() {}; var child = function() { var _parent = child.parent_constructor; if(_parent && _parent !== Function) { _parent.apply(this, arguments); } if(child.prototype.hasOwnProperty("_init")) { child.prototype._init.apply(this, arguments); } }; F.prototype = parent.prototype; c..
"무료로 써봤는데, 진짜 좋았어" 영어로 표현해 봅시다 오늘 배워볼 표현은, 넷플릭스나 디즈니 플러스 또는 티빙과 같은 서비스와 관련된 이야기를 할 때 자주 사용하게 될 표현입니다. 우리가 구독형 서비스나 여러 제품, 이밖에 다양한 것들을 구매하려는 의사결정 이전에 한 번씩 시험 삼아 테스트해보거나 무료로 체험을 해보는 경우가 종종 있습니다. 이 과정에서, 나와 잘 맞는 제품인지 혹은 내가 원하는 서비스나 물건이 맞는지를 판단하게 되지요. 비단 이런 형태의 서비스뿐만이 아니라 어떤 물건을 테스터 제품이나 샘플, 데모 등을 통해서 미리 확인하기도 하죠. 자, 이제 본론으로 들어가 보겠습니다. 어떠한 제품이나 서비스를 '한 번 시험 삼아 사용해 보다'라는 뉘앙스를 표현할 때는 어떤 표현을 사용할까요? 정식으로 구매한 것이 아니라 한 번 살펴보는 차원에서 사용해보..
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 3 앞서 살펴본 subClass 예제 코드에서, 부모 객체의 생성자를 함께 호출하는 선언문 내용을 추가하는 과정을 자세하게 살펴보도록 하겠습니다. 이 과정에서 몇 가지 한계점을 발견하고, 문제점을 보완하는 순서로 진행하겠습니다. 우선 기존 작성 예제 코드를 다시 한번 살펴보겠습니다. function subClass(obj) { var parent = this; var F = function() {}; var child = function() {}; F.prototype = parent.prototype; child.prototype = new F(); child.prototype.constructor = child; child.parent = parent.prototype; child.parent_const..
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 2 먼저 앞서 만들어본 예제 코드를 도식화해보도록 하겠습니다. function subClass(obj) { var parent = this; var F = function() {}; var child = function() {}; F.prototype = parent.prototype; child.prototype = new F(); child.prototype.constructor = child; child.parent = parent.prototype; child.parent_constructor = parent; return child; } 이번에 추가할 라인은, 우리가 subClass에 인자로 전달하는 obj 객체에 대한 처리입니다. 여기서는 자식 클래스에 새로운 프로퍼티를 추가하여 자식 클래스를 확..
"화장을 지우는 걸 잊었어" 영어로 표현해 봅시다 오늘 배워볼 표현은, 아주 간단한 것 같지만 막상 표현하려고 생각하면 쉽게 떠오르지 않는 그런 표현입니다. 바로, 퇴근이나 외출 후에 ‘화장을 지우다’는 표현이죠. 일반적으로 “화장”이라는 용어 자체는 [makeup]이란 것을 잘 알고 계실 것입니다. 그런데 집으로 돌아와서, 씻고 정리를 하며 ‘화장을 지운다’라는 표현을 떠올려보면 선뜻 떠오르는 표현이 없습니다. 단순히 ‘얼굴을 씻는다’, ‘세수를 한다’라는 표현으로 대체할지 아니면 다른 별도의 표현이 있는지 궁금해집니다. 우선은, 알고 있는 선에서 한 번 영어 표현을 시도해 보도록 하겠습니다. ‘화장’은 makeup이라고 했으니, 다음 표현을 영어로 한 번 만들어 볼까요? “나는 운동하기 전에는 항상 화장을 지운다.” 우선 ‘운동하기 전에’는 큰 고민..
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 1 이제부터는 앞서 배운 프로토타입 체이닝, extend 함수, 인스턴스 생성 시점의 생성자 호출 기능 등을 활용하여 subClass 함수를 만드는 예제를 하나씩 살펴볼 예정입니다. subClass의 기능을 먼저 정의해 보도록 하겠습니다. subClass라는 함수는 우선 객체(변수, 메서드)를 파라미터 인자로 받습니다. 부모 함수에서 subClass를 실행하게 되면, 인자로 전달된 객체의 프로퍼티를 포함하는 자식 클래스를 생성하는 기능을 하게 됩니다. 예시를 보겠습니다. 우선, 부모 클래스를 하나 생성해 보겠습니다. var SuperClass = subClass(obj); 위에서 subClass(obj)라는 라인은 명시적으로 부모 클래스를 표시하지 않았습니다. 이는 결국, 최상위 함수 클래스 Function..
"마감 시간을 못 지킬 것 같아요" 영어로 표현해 봅시다 오늘 배워볼 표현 역시 (안 쓰는 게 좋지만) 회사 생활을 하다 보면 한 번씩은 꼭 사용하게 될 표현입니다. 보고서나 공유할 내용, 자료에 대해 사전에 합의된 마감기한을 지키지 못하게 되었을 때 사용할 표현 '마감 시간'을 지키지 못하게 되었다는 표현에 대해서 배워보도록 하겠습니다. 우선 영어로 마감 시간을 지킨다는 표현에 대해서 별도의 관용적 표현을 모르는 상태라고 가정해 보도록 하겠습니다. 우선, 기본적인 단어 먼저 시작해 볼까요? '마감 시간(기한)'을 먼저 확인해 봅시다. 아마 대부분이 잘 알고 있을 만한 단어라고 예상됩니다. 바로 [deadline]이죠? 아마 한글 단어로도 익숙하게 사용하기 때문에 크게 어렵게 느껴지지는 않을 것입니다. 그럼 이 '데드라인'을 지키다, 혹은 지키지 못하다는 표현..
13. Javascript 객체지향 프로그래밍(4) - 캡슐화 구현 2 앞선 아티클에서 작성한 예제 코드를 다시 한번 살펴보겠습니다. 이 코드는 사용하는 데 있어서 한 가지 문제점이 있다는 말씀을 드렸죠? var Rapper = function(arg) { var rapName = arg ? arg : "MC JOHN DOE"; return { getName : function() { return rapName; }, setName : function(arg) { rapName = arg; } }; }; var hype = Rapper(); // var hype = new Rapper(); 도 가능 console.log(hype.getName()); hype.setName("JAMBINO"); console.log(hype.getName()); 여기서 반환받은 객체는 Rap..