분류 전체보기41 [JavaScript] this 자바스크립트는 렉시컬 스코프를 사용하기 때문에, 함수의 상위 스코프는 함수가 정의되는 시점에 평가됩니다. 하지만 this 키워드는 객체가 생성되는 시점에 결정됩니다. this가 동작하는 방식 const testFunction = function() { return this; } console.log(testFunction()) // this 객체는 window, global을 가리킨다. 위 testFunction의 this는 함수(=객체) 생성 시점에 결정되게 되는데, testFunction은 일반 함수로서 호출되었기 때문에 이때 testFunction의 this는 전역 객체인 window 또는 global을 가리키게 됩니다. const changuk = { name: '우창욱', year: 1998, .. 2023. 11. 23. [JavaScript] 실행 컨텍스트 (Execution Context) 정의 실행 컨텍스트는 실행하려는 자바스크립트 코드와 코드를 실행할 때 필요한 정보를 담고있는 특수한 환경입니다. 즉 코드를 실행하는 데 필요한 모든 데이터를 가지고 있는 환경을 실행 컨텍스트라고 할 수 있습니다. 실행 컨텍스트는 전역 컨텍스트(Global Context), 함수 컨텍스트(Function Context)로 나눌 수 있습니다. 전역 컨텍스트는 자바스크립트 코드를 실행하게 되면 반드시 생성되는 컨텍스트로, 웹에서는 window 객체, NodeJS 환경에서는 global 객체를 생성합니다. 함수 컨텍스트는 함수 선언문이 실행될 때 마다 함수별로 실행되는 컨텍스트입니다. 이 컨텍스트에는 함수 실행에 대한 모든 정보를 갖고 있습니다. 자바스크립트의 컨텍스트는 콜 스택(Call Stack) / 실행 .. 2023. 11. 20. [JavaScript] 프로토타입 (Prototype) 자바스크립트는 프로토타입 기반(prototype-based)으로 객체지향 프로그래밍(OOP, Object Oriented Programming)을 지원하는 프로그래밍 언어입니다. 자바스크립트는 객체지향 프로그래밍의 핵심 개념인 상속(Inheritance)을 프로토타입 기반으로 구현하며 코드 재사용을 줄입니다. const testObj = {}; console.log(testObj.__proto__); // [Object: null prototype]{} console.log(testObj.__proto__ === Object.prototype); // true __proto__와 prototype 자바스크립트에서는 객체의 프로토타입에 접근하기 위해 __proto__라는 접근자 프로퍼티를 사용해서 현재 객.. 2023. 11. 16. [JavaScript] 프로퍼티 어트리뷰트(Property Attribute) 프로퍼티 어트리뷰트 자바스크립트에서 객체를 생성할 때, 객체에서 특별하게 사용되는 내부 속성값들이 있습니다. 이를 프로퍼티 어트리뷰트(Property Attribute)라고 합니다. 자바스크립트 프로퍼티 어트리뷰트들은 크게 4가지의 종류로 나뉘어집니다. 1. value 2. writable 3. enumerable 4. configurable 이 값들은, 자바스크립트에서 객체를 생성할 때 자동으로 기본값으로 정의합니다. Object의 static 메서드인 getOwnPropertyDescriptor를 사용해서 프로퍼티 어트리뷰트들을 확인할 수 있습니다. 이때, Object.getOwnPropertyDescriptor 메서드는 프로퍼티 어트리뷰트 정보를 제공하는 프로퍼티 디스크립터(Property Desc.. 2023. 11. 15. 이전 1 ··· 7 8 9 10 11 다음