본문 바로가기

전체 글27

프로토타입 체인을 이용한 Javascript의 상속 이전 글에서 javascript의 class와 프로토타입 체인에 대해 간단히 정리해봤습니다. 이번 글에서는 javascript가 프로토타입 체인을 이용해 어떻게 상속을 구현하는지에 대해 정리해보겠습니다. TL;DR javascript에서는 프로토타입 체인을 이용해 상속이 구현됨. extends 키워드를 통해 클래스의 상속 관계를 만들 수 있음. 상속 관계가 되면 자식 클래스의 프로토타입은 부모 클래스의 프로토타입을 가지게 됨으로써 프로토타입 체인이 만들어짐. 인스턴스에서 프로퍼티에 접근하려고 할 때 프로토타입 체인을 따라 상위 프로토타입으로 거슬러 올라가면서 프로퍼티를 찾음. 따라서 부모 클래스와 자식 클래스에 같은 이름의 프로퍼티가 있을 때 자식 클래스에 있는 프로퍼티에 접근하게 됨.(가려짐 효과) 메.. 2021. 2. 21.
[백준] 1002번: 터렛 문제는 다음과 같습니다. www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 간단히 정리하면 두 원의 중심 (x1, y1), (x2, y2) 와 두 원의 반지름 r1, r2가 주어졌을 때 원의 접점의 개수를 출력하는 문제입니다. 접점의 개수가 무한대일 경우 -1을 출력합니다. 접점의 개수를 구하기 위해서는 세 가지 변수가 필요합니다. distance : 두 원의 중심 사이의 거리 rsum : 두 원의 반지름의 합 rsub : 두 원의 반지름의 차의 절대값 이제 경우의 수를 살펴보겠습니다. 우선 두 원의 중심과 반지.. 2021. 2. 11.
Javascript의 class javascript에서 class가 어떻게 동작하는지에 대해 정리해보겠습니다. TL;DR javascript에서는 class 역시 함수. class 키워드는 클래스를 직관적으로 표현하기 위한 새로운 문법일 뿐 ES6 이전과 동작 방식은 같음. 인스턴스는 클래스의 prototype을 물려받음. 클래스의 메서드는 클래스의 prototype에 저장됨. 인스턴스에서는 프로토타입 체인을 통해 클래스의 메서드에 접근할 수 있음. 정적 메서드는 클래스의 prototype이 아닌 클래스 자체에 저장됨. 그렇기 때문에 정적 메서드는 인스턴스에서 접근할 수 없고 클래스만 접근할 수 있음. class는 함수다 ES6에서 class 키워드가 등장하기 전까지 javascript에서는 생성자로 사용할 함수를 정의하고 new 키워.. 2021. 2. 8.
Javascript의 "this" javascript에서 가장 헷갈리는 부분 중 하나인 "this" 에 대해서 정리해보겠습니다. TL;DR 일반 함수 선언/표현식 객체의 프로퍼티인 함수에서 this는 자신을 호출한 객체가 된다. 일반 함수에서 this는 전역 객체가 된다. (strict mode에서는 undefined 가 된다.) 브라우저 환경에서 전역 객체는 Window 객체이며 node 환경에서 전역 객체는 global 객체이다. 화살표 함수 함수가 생성된 scope의 this를 물려받는다. 브라우저 환경에서 전역 스코프의 this는 Window 객체이며 node 환경에서 전역 스코프의 this는 module.exports 객체이다. this의 정체 this는 일반적으로 객체의 프로퍼티인 함수에서 사용될 때 의미가 있습니다. 객체의 .. 2021. 1. 21.