반응형
클래스 정의
ES5 에서 클래스는 함수로 정의할 수 있다.
아래는 클래스의 속성과 메서드를 정의한 모습
function Car(brand, name, color){
this.brand = brand;
this.name = name;
this.color = color;
}
function Car(brand, name, color){
//인스턴스가 만들어질 때 실행되는 코드
Car.prototype.refuel = function (){
//연료 공급을 위한 코드
}
}
ES6 에서 클래스는 클래스로 정의한다.
속성과 메서드 정의
class Car(){
constructor(brand, name, color){
this.brand = brand;
this.name = name;
this.color = color;
}
}
class Car() {
constructor(brand, name, color){
//생성자
}
refuel(){
//연료공급 코드
}
}
Math.max()
parameter
let num=80;
function someThing(value) {
value=999;
}
someThing(num);
위와같은 코드를 실행했을 때
num의 값을 출력해보면 그대로 80이다.
파라미터는 값(value)을 가져오는 것이므로 착각하지 않는다.
단, 인자가 참조형 데이터 타입(배열, 객체, 함수(function))이라면
주소를 가져오게 되므로 변수의 값이 바뀌게 된다.
arguments
Rest Parameter / Spread Syntax
결론
Rest Parameter는 여러개의 인자(요소)들을 하나의 배열로 리턴 해주는 것이라 여기면 되고,
ex) func(...arr){..}으로 선언돼있을 때
func(1,2,3);하면
arr[0]===1; arr[1]===2; arr[2]===3; //모두 true.
이처럼 함수내에서 배열처럼 사용가능.
Spread Syntax는 배열이나 문자열처럼 반복할 수 있는(iterable) 데이터를 풀어서
각 요소 하나하나로 리턴 해주는 것이라고 여기면 된다.
ex) arr=[1,2,3]; 일때
...arr === 1, 2, 3; //true
[...arr] === [1,2,3]; //true
반응형
'JavaScript' 카테고리의 다른 글
TIL 0928 for in, Array와 Object 구분법 (0) | 2020.10.07 |
---|---|
TIL 0925~26 arr.reduce() filter() map() sort() some() find() (0) | 2020.09.25 |
TIL 0917 Testbuilder, 조건문, 리터럴, IIFE(Immediately invoked function expression) (0) | 2020.09.17 |
함수 선언식, 함수 표현식 (0) | 2020.09.17 |
TIL 0916 JavaScript Koans 과제 (0) | 2020.09.16 |
댓글