Javascript/javascript Core21 [Javascript강의]12강 클래스 클래스 자바스크립트는 프로토타입 기반 객체지향 언어다. 프로토타입 기반 객체지향 언어는 클래스가 필요 없는 객체지향 프로그래밍 언어다. ES5에서는 클래스 없이도 다음과 같이 생성자 함수와 프로토타입을 통해 객체지향 언어의 상속을 구현 할 수 있다. //ES5 생성자 함수 var Person = (function(){ //생성자 함수 function Person(name){ this.name = name; } //프로토타입 메서드 Person.prototype.sayHi = function(){ console.log('Hi! My Name is '+this.name); } //생성자 함수 반환 return Person; }()); //인스턴스 생성 var me = new Person('Kim'); me... 2021. 10. 9. [Javascript 강의] 11강 this this this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. 바인딩이란 식별자와 값을 연결하는 과정을 의미한다. 예를 들어, 변수 선언은 변수이름(식별자)과 확보된 메모리 공간의 주소를 바인딩하는 것이다. this 바인딩은 this(키워드로 분류되지만 식별자 역할을 한다)와 this가 가리킬 객체를 바인딩하는 것이다. 자바스크립트의 this는 함수가 호출되는 방식에 따라 this에 바인딩될 값, 즉 this 바인딩이 동적으로 결정된다. 또한 strict mode 역시 this 바인딩에 영향을 준다. 함수호출 .. 2021. 10. 9. [Javascript 강의]10강. Prototype Prototype 프로토 타입은 생성자 함수가 생성되는 시점에 생성된다. 즉 constructor는 함수 정의가 평가되어 함수 객체를 생성하는 시점에 프로토타입도 더불어 생성된다. 상속과 프로토타입 자바스크립트는 프로토타입을 기반으로 상속을 구현하여 불필요한 중복을 제거한다. //생성자 함수 function Circle(radius){ this.radius = radius; this.getArea = function(){ return Math.PI * this.radius ** 2; } } const circle = new Circle(1); const circle = new Circle(3); //프로토타입 기반 //생성자함수 function Circle(radius){ this.radius = rad.. 2021. 10. 4. [Javascript 강의] 9강.프로퍼티 어트리뷰트 프로퍼티 어트리뷰트 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. 이중 대괄호 "[[...]]"로 감싼 이름들이 내부 슬롯과 내부 메서드다. 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 내부 로직이므로 원칙적으로 자바스크립트는 내부 슬롯과 내부 메서드에 직접적으로 접근하거나 호출할 수 있는 방법을 제공하지 않는다. 단, 일부 내부 슬롯과 내부 메서드에 한하여 간접적으로 접근할 수 있는 수단을 제공하기는 한다. const o = {}; o.[[Prototype]] //Uncaught SyntaxError: Unexpected toke '[' o.__proto__ //Object.prototype 디스크립터.. 2021. 10. 3. 이전 1 2 3 4 5 6 다음