모던 자바스크립트 Deep Dive 정리(8)
-
[모던 자바스크립트 Deep Dive] 19장. 프로토타입 - 2
8. 오버라이딩과 프로퍼티 섀도잉 1) 오버라이딩 : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의하여 사용하는 방식 2) 오버로딩 : 함수의 이름은 동일하지만 매겨변수의 타입 또는 개수가 다른 메서드를 구현하고 매겨변수에 의해 메서드를 구별하여 호출하는 방식. 자바스크립트는 오버로딩을 지원하지 않지만 arguments 객체를 사용하여 구현할 수는 있다. 3) 프로퍼티 섀도잉 : 상속 관계에 의해 프로퍼티가 가려지는 현상. 4) 인스턴스 메서드를 삭제하더라도 프로토타입 메서드는 삭제되지 않는다. 프로토타입 프로퍼티를 변경 또는 삭제하기 위해서는 프로토타입에 직접 접근하여 변경하여야 한다. const Person = ( function() { function Person(name){ this.n..
2023.03.13 -
[모던 자바스크립트 Deep Dive] 19장. 프로토타입 - 1
1. 객체지향 프로그래밍 - 객체의 집합으로 프로그램을 표현하는 프로그래밍 패러다임. - 추상화(Abstraction) : 필요한 속성만 간추려 내어 표현하는 것. - 객체 : 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조, 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조. 2. 상속과 프로토타입. - 상속(Inheritance) : 어떤 객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것. 코드의 재사용이란 관점에서 유용. 아래의 예제는 프로토타입을 기반으로 상속을 구현한 예제이다. function Circle(radius){ this.radius = radius; } Circle.prototype.getArea = function()..
2023.03.10 -
[모던 자바스크립트 Deep Dive] 23장. 실행 컨텍스트
1) 소스코드의 타입 - 소스 코드를 구분하는 이유는 소스 코드의 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르기 때문! (1) 전역 코드 (Global code) : 전역에 존재하는 소스 코드 (2) 함수 코드 (Function code) : 함수 내부에 존재하는 소스 코드 (3) eval 코드 (Eval Code) : 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스 코드 (4) 모듈 코드 (Module Code) : 모듈 내부에 존재하는 소스코드. 2) 소스코드의 평가와 실행 소스코드의 평가와 소스코드의 실행 과정으로 나누어 처리. 아래의 소스 코드가 실행된다고 생각. var x; x = 1; (1) 소스 코드 평가 과정 ㄱ) 변수 선언문 var x;를 실행. 이때 ..
2023.03.07