Javascript/프로토타입 & 클래스 3

ES6 Class + Class 상속 (Prototype을 쉽게 이용하기)

class문법을 사용하면 상속을 해야하는상황에서 훨씬 더 쉽게 이용할 수 있습니다. 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(type, name, sound){ super(type, name, sound); } } class Cat extends Animal{ constructor(name, sound){ super('고양이', name, sound); } } const dog = new Dog('개', '멍멍이', '멍멍'); c..

객체 생성자 상속하기 Prototype

function Animal(type, name, sound){ this.type = type; this.name = name; this.sound = sound; } Animal.prototype.say = function(){ console.log(this.sound); } function Dog(name, sound){ Animal.call(this, '개', name, sound); } function Cat(name, sound){ Animal.call(this, '고양이', name, sound); } Dog.prototype = Animal.prototype; Cat.prototype = Animal.prototype; const dog = new Dog('멍멍이', '멍멍'); const ..

객체 생성자 Prototype

주로 객체를 선언할때는 대문자부터 시작하고, new라는 키워드를 이용합니다. 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(); 여기서 비효율적인거는, 새로운 Animal을 만들때마다 새로운 함수를 만든다는 겁니다. 함수를 보면 내용이 똑같은걸 알 수 있습니다. sound와 똑같은 데이터를 사용하는데 두번이나 선..