전체 글 (686) 썸네일형 리스트형 10. Javascript 프로토타입 체이닝 (5) - 프로토타입 메서드와 this 프로토타입 메서드와 this 바인딩 * 우선 먼저 간단한 용어의 정의를 짚고 넘어가겠습니다. '프로토타입 메서드'는 우리가 어떤 객체의 프로토타입 객체의 프로퍼티 중 하나로 선언한 메서드를 의미합니다. 프로토타입 메서드 형태로 정의한 메서드 내부에서 this를 사용했을 경우에는, 이 this는 어디에 바인딩될까요? 사실 프로토타입에서 선언한 메서드라고 해서 특별한 별도의 this 바인딩 규칙을 갖거나 하지는 않습니다. 우리가 지난 아티클에서 배웠던 this 바인딩 법칙을 그대로 적용해도 큰 무리가 없습니다. 그럼 하나 다시 복습해 보겠습니다. 프로토타입 '메서드'라는 표현에서 알 수 있듯이, 이 함수는 프로토타입 객체의 속성으로서 선언된 메서드입니다. 우리는 메서드에서 사용한 this 키워드가 어떤 패턴.. [Chapter 1] github 처음 사용해보기(1) - git을 설치하고 파일을 만들어보자 Git 설치가 먼저! 우선, PC(이 아티클은 windows를 중심으로 설명합니다)에 아무것도 없는 상황이라고 가정하고, git을 설치하는 과정부터 시작하는 것으로 가정해 봅시다. 우선 아래 링크에서 Git을 자신의 환경과 맞는 버전으로 다운로드하여, 설치해 줍니다. Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for.. "내일 연차 좀 써도 될까요?" 영어로 표현해 봅시다 오늘 배워 볼 표현은, 어찌 보면 회사생활에 있어서 가장 중요한(!) 포인트가 아닐까 합니다. 시시때때로 사용하게 되는 연차, 그리고 조기퇴근 등과 관련된 표현이죠. 우리가 만약 급하게 연차나 휴가를 사용할 일이 생겨서 상사나 관리자에게 쉬어도 업무에 지장이 없을지 물어보게 된다고 가정해 봅시다. 지금 언뜻 드는 단어가 무엇인지 한 번 생각해 볼까요? 아마 'vacation' 정도가 대표적으로 떠오르지 않았나요? 물론 눈치가 빠른 분들이라면, 현재 뉘앙스에서는 적절하지 않다는 것도 아실거라 생각합니다. 그럼, 이런 상황에서는 어떤 표현을 쓰는 게 자연스러울까요? 우선 조금 더 원활하게 진행할 수 있도록, 한국어 문장에 예시를 들어보겠습니다. "저 내일 쉬어도 될까요?" 직접적이면서도, 우리가 흔히 쓰는 .. 10. Javascript 프로토타입 체이닝 (4) - 데이터 타입 확장 앞의 아티클에서, 프로토타입 객체에 메서드를 선언하여 해당 객체에서 새로 선언한 메서드를 불러오는 예시를 보여드렸습니다. 이번에는 프로토타입 객체에서 데이터 타입을 확장하는 방식을 설명해 보도록 하겠습니다. 원리 자체는 간단해 보일 수 있지만, 사실 Javascript에서의 프로토타입 개념이 제대로 잡혀있지 않다면 설명해도 의미가 없는 내용입니다. 우선 Object의 프로토타입에 정의된 표준 메서드를 떠올려 봅시다. hasOwnProperty 또는 isPrototypeOf 같은 표준 메서드들은 Object를 통해 생성되었다고 볼 수 있는 객체들이 자유롭게 사용할 수 있었습니다. 이와 비슷한 방식으로 Number, String, Array의 경우 각각의 프로토타입이 가지고 있는 메서드들을 숫자, 문자열, .. 10. Javascript 프로토타입 체이닝 (3) - 생성자 함수로 생성한 객체의 프로토타입 체이닝 프로토타입 체이닝을 공부할 때는, 생성 패턴과 관계없이 다음의 원칙을 기본으로 숙지하고 있어야 합니다. 이는 앞선 아티클에서 살펴보았던 객체 리터럴 방식으로 생성한 객체이든, 이번 아티클에서 볼 생성자 함수를 통해 생성한 객체이든 마찬가지입니다. Javascript에서 모든 객체는 자신을 생성한 생성자 함수의 prototype 프로퍼티가 가리키는 객체를 자신의 부모 객체로 취급한다. 그럼 아래의 예제에서, 생성자 함수를 통해 객체를 생성한 다음 해당 객체에서는 프로토타입 체이닝이 어떻게 이루어지는지를 살펴보도록 하겠습니다. function Rapper(rapName, age, lable) { this.rapName = rapName; this.age = age; this.lable = lable; } R.. 10. Javascript 프로토타입 체이닝 (2) - 리터럴 객체의 프로토타입 체이닝 명시적으로 생성자 함수를 사용하지 않고, 객체 리터럴 방식으로 생성한 객체의 경우 생성자 함수는 무엇일까요? 다룬 지 오래되어 잊어버리셨을 수도 있겠지만... 객체 리터럴 방식으로 생성된 객체의 생성자 함수는 Object( )입니다. 이는 가장 기본적인 원칙이므로 잊지 말고 다시 한번 상기하도록 합시다. Object( )라는 생성자 함수를 우리가 직접적으로 다룰 일은 많지는 않지만 이 역시 함수 객체의 한 종류입니다. 그렇다면 이 Object( ) 역시 prototype이라는 속성을 갖고 있겠죠? 여기서부터 생성자 함수에서 다루었던 내용을 그대로 적용시켜 봅시다. 객체 리터럴을 통해 생성한 객체는 어떤 [[Prototype]]을 갖게 될까요? 다름 아닌 Object.prototype을 가리키게 됩니다. .. "그건 우리에게 이익이 되지 않아요" 영어로 표현해 봅시다 직장인으로서 일하다 보면 궁극적으로 우리가 하고 있는 일이 "이익"을 추구하는 일임을 깨닫는 시점이 옵니다. 당연한 이야기라고 생각할 수도 있겠지만 자신이 대표이사나 주주가 아닌 이상에야 이익보다는 여러가지 다른 가치나 목적을 우선으로 생각하는 경우도 종종 있습니다. 그러다 보면 어느 순간 자신이 하는 일이 회사나 조직의 관점에서는 이익이 되지 않는 경우가 있기도 하죠. 반대로 계약이나 거래를 하는 과정에서 꼼꼼하게 뜯어보면, 막상 우리에게는 실질적으로 이득이 되는 것이 없는 협상을 하게 되는 경우도 있습니다. 오늘 배워볼 표현은, 이러한 상황에서 써먹을 수 있는 '이익'과 관련된 표현입니다. "그건 우리에게 이익이 되지 않아요."라는 표현을 한 번 생각해볼까요? 예를 들어 계약 조건을 협의하는 과정에서.. 10. Javascript 프로토타입 체이닝 (1) - 프로토타입이 뭐지? Javascript는 기본적으로 프로토타입 기반의 객체 지향 프로그래밍을 지원합니다. JAVA나 C# 등의 여타 프로그래밍 언어의 상속 체계 등에 익숙한 사람이라면, 오히려 혼란스러워질 수 있는 구조를 갖고 있죠. 프로토타입 체이닝을 주제로 한 아티클에서는 Javascript에서 OOP 기능을 제공하는 기본 원리인 프로토타입과 프로토타입 체이닝을 살펴보도록 하겠습니다. 기존 언어와 비교해보도록 하겠습니다. 우선, Javascript 역시 ‘부모’객체와 ‘자식’ 객체의 개념을 사용할 수 있습니다. 하지만 다른 언어와의 차이점은, 객체를 생성하는 방식입니다. 근본적인 차이점은 바로 클래스의 개념이 없다는 점이죠. 이제까지 살펴본 내용을 되짚어보면, 객체를 리터럴 방식으로 선언하거나 생성자 함수를 사용해 생성.. 이전 1 ··· 74 75 76 77 78 79 80 ··· 86 다음