2차_3주차_권태영_회고록 - hyeone999/Docs-JS_deepDive_Study GitHub Wiki
[19장. 프로토 타입]
1. 프로토타입이란?
자바스크립트는 프로토 타입 기반 언어이다.
객체는 다른 객체로부터 상속을 받을수 있음 이것을 가능하게 하는것이 프로토 타입 임
const user={
sayHello(){
console.log('Hello!')
}
};
user.sayHello(); // Hello!
상속 = 어떤 객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는것
2. proto / [prototype]
Prototype : 자바스크립트 엔진 내부 슬록임 ( 접근할수 없음)
proto : 비표준이지만 대부분의 브라우저에서 접근 가능한것 (But, 권장하지 않는 방법임)
__proto 접근자 프로퍼티
접근자 프로퍼티, 상속을 통해 사용됨
3.프로토타입 체인
객체의 프로퍼티에 접근할 때, 해당 객체에 없으면 프로토타입 체인을 따라 탐색하는것
const parent = {
greet(){
return 'Hello!';
}
};
const chile = Object.create (parent);
console.log(child.greet()); // Hello!
Object.prototype을 프로토타입 체인의 종점 (end of prototype chain) 이라함
프로토 타입 상속 구조
모든 객체는 object로 부터 상속 받음 ( 자바스크립트 객체는 단일 상속만 가능)
4. 오버라이딩과 프로퍼티 섀도잉
const Person = (function (){
//생성자 함수
function Person(name){
this.name = name;
}
//프로토타입 메서드
Person.prototype.sayHello = function(){
console.log('Hi! My name is ${this.name}');
};
//생성자 함수를 반환함
return Person;
}());
const me =new Person('Lee');
//인스턴스 메서드
me.sayHello=function(){
console.log('Hey! My name is ${this.name}');
};
//인스턴스 메서드가 호출된다. 프로토타입 메서드는 인스턴스 메서드에 의해 가려진다.
me.sayHello(); //Hey! My name is Lee
오버라이딩
상위 클래스가 가지고 있늦ㄴ 메서드를 하위 클래스가 재정의하여 사용하는 방식
오버로딩
함수의 이름은 동일하지만 매개변수의 타입 또는 개수가 다른 메서드를 구현하고 매개변수에 의해 메서드를 구별하여 호출하는 방식임
[28장. Number]
1. Number 생성자 함수
Number 객체 + New 연산자 = Number 인스턴스
const numObj = new Number();
console.log(numbObj);
2.Number 프로퍼티
-Number.EPSTLON
-부동소수점으로 인해 오차를 해결하기 위해 사용
-Max_VALUE
-가장 큰 양수 값
-MIN_VALUE
-가장 작은 양수 값
3.Number 메서드
- Number.isFinite
- Number.isInteger
- Number.isNaN
- Number.isSafeInteger
- Number.prototype.toExponential
- Number.prototype.toFixed
- Number.prototype.toPrecision
- 인수로 전달받은 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환
- Number.prototype.toString
- 숫자를 문자열로 변환하여 반환함
회고록
이번 스터디를 진행하면서 발표자가 질문을 하는데 그 질문에 대해 답변을 나름대로 잘한것 같아서 뿌듯했고
더 열심히 공부해서 공부할때 이러한 질문들이 스스로 생각나도록 공부해야겠다라는 생각이 들었다