prototype. 함수 = function() 등으로 값을 에 넣어줄수 있다
function Animal(type, name, sound) {
this.type = type;
this.name = name;
this.sound = sound;
}
Animal.prototype.say = function() {
console.log(this.sound);
};
Animal.prototype.sharedValue = 1;
const dog = new Animal('개', '멍멍이', '멍멍');
const cat = new Animal('고양이', '야옹이', '야옹');
dog.say();
cat.say();
console.log(dog.sharedValue);
console.log(cat.sharedValue);
function Animal(type, name, sound) { this.type = type; this.name = name; this.sound = sound; this.say = function() { console.log(this.sound); }; }
와 같다
객체 생성자 상속받기
프로토타입공유를 위해 각각 Dog와 Cat의 prototype을 Animal.prototype으로 지정해주었다
function Animal(type, name, sound) {
this.type = type;
this.name = name;
this.sound = sound;
}
Animal.prototype.say = function() {
console.log(this.sound);
};
Animal.prototype.sharedValue = 1;
function Dog(name, sound) {
Animal.call(this, '개', name, sound);
}
Dog.prototype = Animal.prototype;
function Cat(name, sound) {
Animal.call(this, '고양이', name, sound);
}
Cat.prototype = Animal.prototype;
const dog = new Dog('멍멍이', '멍멍');
const cat = new Cat('야옹이', '야옹');
dog.say();
cat.say();
클래스
es6에는 클래스가 추가되엇으며
내부 메소드를 통해 클래스 내부에 함수를 선언하면 자동으로 prototype으로 등록이 된다
function Animal(type, name, sound) {
this.type = type;
this.name = name;
this.sound = sound;
this.say = function() {
console.log(this.sound);
};
}
const dog = new Animal('개', '멍멍이', '멍멍');
const cat = new Animal('고양이', '야옹이', '야옹');
dog.say();
cat.say();
extends를 사용해서 상속을 한다 (자바와 같은듯 싶다)
supert가 상속받은 클래스의 생성자를 가리킨다
class Animal {
constructor(type, name, sound) {
this.type = type;
this.name = name;
this.sound = sound;
}
say() {
console.log(this.sound);
}
}
class Dog extends Animal {
constructor(name, sound) {
super('개', name, sound);
}
}
class Cat extends Animal {
constructor(name, sound) {
super('고양이', name, sound);
}
}
const dog = new Dog('멍멍이', '멍멍');
const cat = new Cat('야옹이', '야옹');
dog.say();
cat.say();
'JavaScript > javascript 기초 공부하기' 카테고리의 다른 글
조건문 활용 (0) | 2020.01.24 |
---|---|
Truty and falsy, 단축 평가 논리 계산 (0) | 2020.01.24 |
자바스크립트 내장 함수 정리 (forEach, map, indexOf, findIndex, find, filter, splice, slice, concat, join, reduce) (1) | 2020.01.19 |
자바스크립트 반복문 정리 (for of, for in, Object.entries,keys,values) (0) | 2020.01.19 |
javascript로 css 조작하기 (0) | 2020.01.09 |