본문 바로가기

자바스크립트 프로퍼티3

[ 모던 자바스크립트 스터디 ] 프로토타입 - 1 자바스크립트는 프로토타입을 기반으로 상속을 구현한다. 이 프로토타입이 어떤 것인지 알아보자. function Circle(radius) { this.radius = radius; this.getArea = function () { return Math.PI * this.radius ** 2; }; } const c1 = new Circle(1); const c2 = new Circle(2); 위 코드의 c1과 c2 객체는 모두 각각 radius 프로퍼티와 getArea 메서드를 갖는다. getArea 메서드가 각 객체마다 존재할 필요가 있을까? 메모리 낭비다. 하나만 생성해서 모든 인스턴스가 공유해서 사용하는게 더 올바르다. 이걸 상속을 통해서 중복을 제거해보자. function Circle(radius.. 2022. 10. 2.
[ 모던 자바스크립트 스터디 ] 프로퍼티 어트리뷰트 내부 슬롯 & 내부 메서드 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. ECMAScript 사양에 등장하는 이중 대괄호로 감싼 이름들이 바로 그것들이다. 내부 슬롯과 내부 메서드는 자바스크립트 엔진에서 실제로 동작은 하나 개발자들이 직접 사용할 수 있도록 공개된 프로퍼티는 아니다. 원칙적으로 내부 슬롯과 내부 메서드에 직접적으로 접근하거나 호출할 수 있는 방법을 제공하지는 않는다. 하지만 일부에 한해 간접적으로 접근할 수 있는 수단을 제공한다. 모든 객체는 [[Prototype]] 이라는 내부 슬롯을 갖고, 이는 __proto__ 를 통해 간접적으로 접근할 수 있다. 사실 이 언더스코더 2개를 통해 호출.. 2022. 9. 22.
[ 모던 자바스크립트 스터디 ] 객체 객체란 무엇인가 자바스크립트는 객체 기반 프로그래밍 언어이다. 자바스크립트를 구성하는 거의 모든 것이 객체라고 해도 과언이 아닐 정도이다. 원시값이 아닌 함수, 배열, 정규 표현식 .. 기타 등등은 모두 객체이다. 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조 이다. 만약 c 언어를 했었다면, 구조체를 떠올리면 더 이해하기 쉽지않을까 생각한다. 원시 타입 값은 변경 불가능한 값이지만 객체 타입의 값은 변경 가능한 값이다. 객체는 0 개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트 내에서 사용할 수 있는 값들은 모두 프로퍼티 값이 될 수 있다. 자바스크립트의 함수 또한 프로퍼티 값이 될 수 있다. 프로퍼티의 값이 함수일 때는 일반적인 함수들과 .. 2022. 9. 17.