class를 예로 들면 붕어빵 틀이라고 할 수 있다. 하나의 틀을 만들어 놓으면, 그 틀을 이용해 붕어빵을 계속 찍어 낼 수 있다. 그렇게 만들어진 붕어빵을 인스턴스라고 한다.
자바스크립트의 class는 es6부터 추가되었다. 그 전에는 클래스를 정의하지 않고 object를 만들어 사용했다.
}
여기서 name, age는 fields라고 하고, 클래스 안에서 사용되는 함수를 methods라고 한다.
class = template
declare once
no data in
${this.name}: hello!
)const YG = new Person('Yg',28);
console.log(YG.speak())
}
Object
하나의 변수에는 하나의 값만 저장할 수 있다. 그래서 사용할 값이 많아지면 수 많은 변수를 사용하게 된다. 그렇게되면 유지보수도 힘들어진다. 그래서 쉽게 관리하기 위해 object를 사용한다.
object를 사용하면 관련된 변수들끼리 모아서 관리를 할 수 있다.
object는 key(value에 접근하기 위한 property 변수) 와 value의 집합체이다.
obj 를 leteral방식이라고하고, obj1을 constructor라고한다.
my.hasJob = false;
my['hasJob'] = false
function printValue(obj, key){
console.log(obj.key);
}
이러한 경우는 obj에 key라는 property를 호출하라는 것이다. 하지만 obj 내에 key라는 property값이 없으면 undifined를 받아오게된다. 이것을 방지하기 위해서는 obj.key가 아닌
obj[key]를 사용하여 접근해야한다.
이런식으로 반복적인 object를 생성하기 위해서는 함수를 사용하는 것이 좋다.
function makePerson(name,age) {
return{
this.name = name;
this.age = age;
};
}
person5 = makePerson('양씨', 20);
for(key in obj) {
console.log(key)
}
obj의 키값을 돌면서 키를 보여준다.
그러면 어떻게 복사를 하느냐?? 2가지 방법이 있다.
1. const user3 = {};
for (key in user1) {
user3[key]=user1[key];
}
이렇게하면 user1의 키값을 돌면서 user3[user1의 key]에 user1의 value값을 호출에 저장한다.
Object객체의 assign 메서드를 사용한다.
그럼 user4에 user1객체가 그대로 들어간다.