const user = {
name: 'mike'
}
user.hasOwnProperty('name') // true 가 나옵니다
객체에 요소가 있는지 알아볼 수 있는 함수
객체는 hasOwnProertyu 에 프로토 타입을 가지고있습니다.
클래스 상속을 사용하면 클래스를 다른 클래스로 확장할 수 있습니다.
기존에 존재하던 기능을 토대로 새로운 기능을 만들 수 있죠.
class User2 {
constructor(name,age) { // 인자를 전달해줌
this.name = name; // 객체를 초기화
this.age = age;
}
showName() {
console.log(this.name);
}
}
const tom = new User2("Tom" ,19)
new 를 통해 호출 했을때 내부에서 정의된 내용으로
객체를 생성합니다.
이때 constructor 는 객체를 만들어주는 생성자 메소드 입니다.
class Animal {
constructor(name) {
this.speed = 0;
this.name = name;
}
run(speed) {
this.speed = speed;
alert(`${this.name} 은/는 속도 ${this.speed}로 달립니다.`);
}
stop() {
this.speed = 0;
alert(`${this.name} 이/가 멈췄습니다.`);
}
}
let animal = new Animal("동물");
class Car {
constructor(color) {
this.color = color;
this.wheels = 4;
}
drive() {
console.log('drive..');
}
stop() {
console.log('Stop!');
}
}
class Bmw extends Car {
park() {
console.log("PARK");
}
stop() {
super.stop(); // Stop! 이 출력됩니다.
console.log('OFF');
}
}
z4.stop() // OFF 가 출력되고 덮어쓰게 됩니다.
부모의 메소드를 그대로 사용하고 싶을경우
super를 사용해주면 , 메소드 오버라이딩이 사용됩니다.