본문 바로가기

Javascript7

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.
클로저(closure)와 즉시실행함수(IIFE) Node.js를 이용해 웹사이트를 만들어보긴 했지만 자바스크립트에 대해 제대로 알고있지 않은 것 같아 최근에 O'REILLY에서 나온 '러닝 자바스크립트' 책을 보면서 공부를 시작했습니다. 클로저라는 말에 대해서 들어본 적은 있었지만 무슨 개념인 알지 못하고 있었습니다. 이번엔 제대로 알게 된 클로저와 재미있는 함수인 즉시실행함수에 대해서 정리해보려고 합니다. Javascript의 정적 스코프 먼저 javascript의 스코프에 대해서 알 필요가 있습니다. javascript의 스코프는 정적 스코프를 따릅니다. 정적 스코프를 영어로 하면 lexical scope입니다. 즉, 프로그램이 실행되기 전에 코드상태에서 스코프가 정해지기 때문에 함수 선언 시에 함수의 스코프가 정해진다는 뜻입니다. 글로 풀어쓰면 .. 2020. 1. 26.