JS/객체지향(4)
-
JS 객체지향 복습 5
[상속된 메소드 재정의] 상속된 메소드를 재정의 할 수 있습니다. 메소드를 추가하는 동일한 방식으로 수행됩니다. Animal.prototype.say = function(){ return " k k k"; }; Cat.prototype = Object.create(Animal.prototype); Cat.prototype.say = function(){ return " meow meow"; }; 만약 let su = new Cat()을 하게되면 su.say()를 했을 때 출력되는 값은 meow meow 가 됩니다. [관련 없는 개체 간에 일반적인 동작을 추가하려면 혼합 사용] 새나 비행기 같이 둘 다 날 수 있지만 전혀 다른 종류 일 때 사용할 수 있는 것이 혼합 기능입니다. let flyText = f..
2021.07.12 -
JS 객체지향 복습 4
[반복하지 않도록 상속 사용] 프로그래밍에는 "Don't Repeat Yourself" (DRY)라는 원칙이 있습니다. 반복 코드는 일반적으로 작업량이 많아지고 오류의 여지가 많아진다는 것을 의미합니다. Cat.prototype= { constructor: Cat, say: function(){ console.log("Hello " + this.name); } }; Dog.prototype= { constructor: Dog, say: function(){ console.log("Hello " + this.name); } }; say 메소드는 Cat과 Dog에서 반복이 됩니다. 이럴 땐 supertype을 만들어 해결할 수 있습니다. Animal.prototype= { constructor:Animal,..
2021.07.12 -
JS 객체지향 복습 3
[prototype을 new 개체로 변경] prototype을 개별적으로 추가하면 비효율적입니다. Cat.prototpye.Legs = 4; Cat.prototype.cry = function(){ console.log("meow meow"); } 보다 효율적인 방법은 prototpye을 속성이 이미 포함된 새로운 개체로 만드는 것입니다. Cat.prototpye={ Legs : 4, cry : function(){ console.log("meow meow"); } }; 이렇게 하면 한 번에 속성을 추가합니다. 하지만 이렇게만 할시에는 부작용이 발생합니다. 왜냐하면 construtor속성을 지우기 때문입니다. 그래서 prototype으로 새 개체를 만들 때마다 constructor 속성을 정의해야 합니다..
2021.07.12 -
JS 객체지향 복습 1
OOP(Object Oriented Programming)는 객체와 클래스 사물 및 그 기능을 설명하는 코드를 구성하는 데 사용된다고 합니다. 그중에서 배운 것은 this 키워드 ,prototype chains, constructors(생성자),inheritance(상속)을 포함한 javascript의 OOP기본 원리를 학습했습니다. 예) 자동차라는 개체가 있다면 속성으로 모델 이름, 바퀴의 수 등이 있다. javascript의 개체는 실제 개체와 마찬가지로 속성 및 동작을 제공한다고 합니다. ex) let cat = { name: "ben", Legs: 4 }; 이 cat 개체에는 name "ben"과 Legs 4 두 속성과 값이 있습니다. [' . ' 표기법을 사용하여 개체 속성 액세스 하는 방법] ..
2021.07.12