본문 바로가기

JavaScript

(12)
[JS] 모던 자바스크립트 - 12. 생성자 함수 생성자 함수 - new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수 - 하나의 객체만을 생성하는 객체 리터럴 방식과 달리 생성자 함수는 동일한 프로퍼티 구조를 갖는 객체를 여러 개 생성 가능 - 일반 함수와 동일한 방법으로 함수를 정의하고 호출 시 new 연산자와 함께 호출하면 생성자 함수로 동작 - 생성자 함수는 일반적으로 파스칼 케이스로 명명 - new 연산자와 함께 호출하지 않으면 일반 함수로 동작 - 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킴 생성자 함수의 인스턴스 생성 과정 1. 인스턴스 생성과 this 바인딩 - 런타임 이전에 실행 - 암묵적으로 빈 객체 생성 → 완성되진 않았지만 생성자 함수의 인스턴스 - 인스턴스는 this에 바인딩 2. 인스턴스 초기화..
[JS] 모던 자바스크립트 - 11. 프로퍼티 어트리뷰트 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 프로퍼티 어트리뷰트 - 프로퍼티의 상태를 나타내는 것 - 프로퍼티의 상태는 프로퍼티의 값(value), 값의 갱신 가능 여부(writable), 열거 가능 여부(enumerable), 재정의 가능 여부(configurable)을 말한다 - 자바스크립트 엔진이 프로퍼티를 생성할 때 프로퍼티 어트리뷰트를 기본값으로 자동 정의함 - 자바스크립트 엔진이 관리하는 내부슬롯이므로 직접 접근 불가능 프로퍼티 디스크립터 객체 - Object.getOwnPropertyDescriptor 메서드, Object.getOwnPropertyDescriptors 메서드로 간접적으로 프로퍼티 어트리뷰트를 확인 가능함 - 위 메서드는 프로퍼티 어트리뷰트 정보를 제공하는 프로퍼티 디스크립..
[JS] 모던 자바스크립트 - 10. var, let, const var - ES5까지 변수를 선언할 수 있는 유일한 방법이었음 - 중복 선언이 가능, 중복 선언 시 변수 값을 재할당하며, 초기화문이 없는 경우에는 무시된다 var x = 1; var y = 1; // 초기화문이 있는 선언문은 값 재할당. var x = 100; // 초기화문이 없는 선언문은 무시. var y; console.log(x); // 100; console.log(y); // 1; - 함수 코드 블록만을 지역 스코프로 인정, 함수 외부에서 var 키워드로 선언한 변수는 코드 블럭 내에 선언해도 모두 전역 변수 var x = 1; if(true){ // 여기서 선언한 변수는 함수 내부가 아니기 때문에 전역변수 var x = 10; } console.log(x); // 10 - 변수 호이스팅에 의..
[JS] 모던 자바스크립트 - 09. 전역 변수의 문제점 변수의 생명 주기 지역 변수 - 함수의 생명 주기와 일치 - 함수 내부의 변수 선언은 함수가 호출된 직후에 함수 몸체의 코드가 한 줄씩 순차적으로 실행되기 이전에 자바스크립트 엔진에 의해 먼저 실행 (호이스팅, 스코프 단위로 동작) 전역 변수 - 전역 객체의 생명 주기와 일치 - var 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티 - 브라우저 환경에서의 window 전역 객체는 웹페이지를 닫기 전까지 유효 전역 객체 : 코드가 실행되기 이전 단계에 자바스크립트 엔진에 의해 어떤 객체보다도 먼저 생성되는 특수한 객체. 브라우저에서는 window, Node.js에서는 global 객체를 의미. 표준 빌트인 객체(Object, String, Number, Function, Array...)와 환경에 따른..

728x90
반응형