객체에 속성 추가하기
let javaScriptObject = {};
let testArray = [1,2,3,4];
javaScriptObject.array = testArray;
console.log(javaScriptObject);
javaScriptObject.title = 'Algo';
console.log(javaScriptObject);
프로토타입 활용 상속
function ExampleClass() {
this.name = "Javascript";
this.sayName = function() {
console.log(this.name);
}
}
let example1 = new ExampleClass();
example1.sayName();
.prototype을 활용하여 메소드를 동적으로 추가할 수 있다.
function ExampleClass() {
this.array = [1,2,3,4,5];
this.name = "javascript";
}
let example1 = new ExampleClass();
ExampleClass.prototype.sayName = function () {
console.log(this.name);
}
example1.sayName();
클래스의 함수들을 생성자에서 추가하거나 .prototype을 통해 추가할 수 있다.
생성자와 변수
해당 객체의 속성들을 다른 범위에서도 직접 접근이 가능하다.
function ExampleClass(name, size) {
this.name = name;
this.size = size;
}
let example1 = new ExampleClass("public", 5);
console.log(example1);
console.log(example1.name);
console.log(example1.size);
get, set 을 이용해서 접근을 제어 할 수 있다.
function ExampleClass(name, size) {
let privateName = name;
let privateSize = size;
this.getName = () => privateName;
this.setName = (name) => {privateName = name;};
this.getSize = () => privateSize;
this.setSize = (size) => {privateSize = size};
}
let example = new ExampleClass("ssss", 3);
example.setSize(12);
console.log(example.privateName); // 직접 접근할 수 없어서 undefined
console.log(example.getName());
console.log(example.size);
console.log(example.getSize());
function Animal(name, animalType) {
this.name = name;
this.animalType = animalType;
}
Animal.prototype.sayName = function() { // Animal클래스에 sayName 메소드 동적 추가
console.log(this.name);
}
Animal.prototype.sayAnimalType = function() { // Animal클래스에 sayAnimalType 메소드 동적 추가
console.log(this.animalType);
}
function Dog(name) { // // Dog라는 클래스 생성
Animal.call(this, name, "Dog"); // Animal함수를 호출
}
Dog.prototype = Object.create(Animal.prototype); // 새 객체를 만듬.
let myAnimal = new Animal("ditto", "pokemon");
myAnimal.sayName();
myAnimal.sayAnimalType();
let myDog = new Dog("candy", "dog");
myDog.sayName();
myDog.sayAnimalType();
반응형
'패스트캠퍼스 > 자습' 카테고리의 다른 글
자바스크립트로 하는 자료구조와 알고리즘(8장) - 재귀 (0) | 2019.10.24 |
---|---|
자바스크립트로 하는 자료구조와 알고리즘(7장) - 메모리 관리 (0) | 2019.10.24 |
자바스크립트로 하는 자료구조와 알고리즘(5장) - 배열 (0) | 2019.10.22 |
자바스크립트로 하는 자료구조와 알고리즘(4장) - 문자열 (0) | 2019.10.16 |
자바스크립트로 하는 자료구조와 알고리즘(1,2장) - 빅오 표기법, 자바스크립트의 독특한 특징 (0) | 2019.10.16 |