class Car {
constuctor(brand, name, color) { // 생성자 함수
this.brand = brand; // this는 인스턴스 객체
this.name = name; // brand, name, color는 속성
this.color = color;
}
refuel() { // refuel, drive는 메소드
console.log('연료를 공급합니다')
}
drive() {
console.log('운전을 시작합니다')
}
}
let avante = new Car('hyundai', 'avante', 'black');
avante.color; // 'black'
avante.drive(); // '운전을 시작합니다'
함수 실행 방법에 따라 this가 어떻게 결정되는지 알아보자.
foo()
// this는 window(브라우저) or global(Node.js)
// 앞에 아무것도 없는 메소드(함수)는 사실 그 앞에 window(또는 global)가 생략되어 있는 것. 즉, 원래 window.foo()
obj.foo()
// this는 obj
new Foo()
// this는 새롭게 생성된 인스턴스 객체
foo.call()
foo.apply()
// 첫번째 인자가 this가 됨
//////////// call, apply, bind 추가할 것 ///////////
let arr = [1,2,3,4,5]
let [a, b] = arr;
console.log(a); // 1
console.log(b); // 2
const student = { name: '박해커', major: '물리학과' };
const { name } = student
const { major } = student
console.log(name) // '박해커'
console.log(major) // '물리학과'
this this this this슈탈트 붕괴현상... 하면 할수록 헷갈린다
더 공부할 것