본문 바로가기

전체 글90

[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.
[Javascript 강의] 8강 스코프 스코프 스코프(scope)는 유효 범위이다. 스코프는 변수 그리고 함수와 깊은 관련이 있다. 함수의 매개변수는 함수 몸체 내부에서만 참조할 수 있고 함수 몸체 외부에서는 참조할 수 없다. function add(x, y){ //매개변수는 함수 몸체 내부에서만 참조할 수 있다. //즉, 매개변수의 스코프는 함수 몸체 내부다 console.log(x, y); //2 5 return x + y; } add(2, 5); //매개변수는 함수 몸체 내부에서만 참조할 수 있다. console.log(x, y); //ReferenceError: x is not defined var var = 1; //코드의 가장 바깥 영역에서 선언한 변수 if(true){ var var2 = 2; //코드 블록 내에서 선언한 변수 i.. 2021. 9. 25.
[Javascript 강의] 7강 함수 함수 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. //f(x,y) = x + y function add(x,y){ return x + y; } //f(2,5) = 7 add(2,5); //7 함수를 사용하는 이유 함수는 필요할 때 여러 번 호출할 수 있다. 코드의 재사용이라는 측면에서 매우 유용하다. 코드의 중복을 억제하고 재사용성을 높이는 함수는 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성을 높이는 효과가 있다. 함수 리터럴 함수는 객체 타입의 값이다. 따라서 함수도 함수 리터럴로 생성할 수 있다. 함수 리터럴의 구성요소는 함수 이름, 매개변수 목록, 함수몸체 이다. 함수는 객체지만 일반 객체와는 다르다. 일반 객체는 호출할 수 없지만 함수는 .. 2021. 9. 18.