IT36 [JS] 프로토타입 체인 (Prototype Chain) 이전 포스팅에서는 프로토타입의 개념에 대해서 한 번 알아봤었는데, 프로토타입 체인을 잘 이해하기 위해서는 자바스크립트에서 프로토타입을 기반으로 어떻게 객체지향을 구현해내는지에 집중해서 볼 필요가 있습니다. 프로토타입 체인이라는 개념은 처음에는 이해하기 어려운 개념일 수 있는 만큼 최대한 자세하게 살펴보도록 하겠습니다. 프로토타입 체인 특정 객체의 메서드나 프로퍼티에 접근하고자 할 때, 해당 객체에 접근하려고 하는 프로퍼티나 객체가 없다면 프로토타입 링크([[Prototype]] 프로퍼티)를 따라 자신의 부모 역할을 하는 프로토타입 객체를 차례로 검색합니다. 이를 프로토타입 체인이라고 합니다. var developer = { name : 'BKJang', age : 25, gender : 'male' };.. 2023. 3. 8. [JS] 프로토타입 (Prototype) 기본적으로 자바스크립트는 객체지향 프로그래밍을 지원합니다. 단, Java와 다르게 프로토타입 기반의 객체지향 언어입니다. 자바스크립트에서는 this만큼이나 프로토타입에 대한 이해가 반드시 필요합니다. 어찌 보면 가장 어려운 개념일 수도 있지만 이번 포스팅과 다음 포스팅을 통해서 한 번 자세하게 살펴보도록 하겠습니다. 프로토타입 객체 자바스크립트는 클래스가 없습니다. 사실, 하다 보면 느끼겠지만 지원하지 않는다기보단 클래스를 만들어 사용할 수는 있습니다. 또한, ES6부터는 클래스를 지원하고 이는 기존 ES5의 프로토타입 개념을 기반으로 사용하기 편하게 바꾼 Syntatic Sugar입니다. Java에서는 class를 이용해서 객체를 생성하지만, 자바스크립트에서는 객체 리터럴이나 생성자 함수를 이용해 객체.. 2023. 3. 7. [JS] 함수의 호출과 this 자바스크립트에서는 this라는 개념이 있습니다. 이를 이해하는 것은 매우 중요한데, 함수를 호출하는 방식에 따라 this가 바인딩되는 방식이 달라지기 때문에 어려울 수 있습니다. 이번 포스팅에서는 이를 좀 더 쉽게 이해할 수 있도록 함수를 호출하는 방식에 따라 유형을 나눠서 설명해보려 합니다. 함수 호출 패턴과 this 바인딩 JavaScript에서는 함수를 호출할 때, arguments객체와 함께 this 인자가 함수 내부로 전달됩니다. 문제는 this인자가 함수가 호출되는 방식(패턴)에 따라 다른 객체를 참조하기 때문에 이를 이해하기 어려울 수 있습니다. 객체의 메서드 호출할 때 함수를 호출할 때(내부 함수의 this 바인딩) 생성자 함수를 호출할 때 call과 apply메서드의 사용을 통한 this.. 2023. 3. 6. [JS] 함수의 호출과 arguments객체 자바스크립트 역시 다른 언어들처럼 함수를 선언하고 이를 호출함으로써 원하는 로직을 구현하고 실행하게 됩니다. 이전 포스팅까지는 함수의 선언에 대해서 알아보았습니다. 이번 포스팅에서는 함수의 호출과 이때 전달되는 arguments객체에 대해서 살펴보도록 하겠습니다. 자바스크립트에서의 함수 호출 모든 언어에서 함수의 기본적인 작동 원리는 호출에 의한 동작입니다. Java에서 함수를 호출할 때 보다 자바스크립트에서의 함수 호출은 자유롭습니다. 물론, 타입스크립트가 최근에는 많이 사용되고 있고 이때 함수 호출의 자유도는 Java와 유사하다고 볼 수 있습니다. 참고로 자유도가 높다고 좋은 것은 아닙니다. 왜냐하면 자유도가 높을수록 불필요한 에러가 많이 발생할 수 있고 이에 따른 예외처리도 더 많이 해줘야 하기 때.. 2023. 3. 2. 이전 1 2 3 4 5 6 ··· 9 다음 728x90