- 자바스크립트 객체
- 자바스크립트에서는 객체가 "왕"
- 거의 모든것들이 객체 or 객체처럼 동작
객체란 ?
: 속성들의 그릇 (속성은 이름과 값을 가짐)
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<body>
<script>
// Object() 생성자를 사용해 codyA 객체를 생성
var codyA = new Object();
codyA.living = true;
codyA.age = 33;
codyA.gender = 'male';
codyA.Getgender = function() { return codyA.gender; };
console.log(codyA);
// Object {living=true, age=33, gender="male", ...} 객체가 기록된다.
/* 아래에서도 동일한 cody 객체가 만들어지지만, 네이티브 Object() 생성자가 아닌
우리가 정의한 Person() 생성자와 new 연산자를 사용해 인스턴스로 만들었다. */
var Person = fucntion(living, age, gender) {
this.living = living;
this.age = age;
this.gender = gender;
this.getgender = function() { return this.gender; };
};
// Object {living=true, age=33, gender="male", ...} 객체가 기록된다.
var codyB = new Person(true, 33, 'male');
console.log(codyB);
</script>
</body>
</html>
→ codyA 와 codyB의 객체는 객체자체로만 보면 큰차이가 없지만, 객체를 만든 생성자 함수는 서로 다름
: codyA 객체는 Object() 생성자의 인스턴스를 사용해 만듦
: codyB 객체는 Person() 생성자를 사용해 만들어짐
[ Person() 생성자는 다른 Person() 객체를 만들 때도 사용할 수 있는 "생산공장(Factory)"으로써 사용됨 ]
※ 두 방법 모두 결과적으로는 같은 복합 객체를 만들어냄. 둘 모두 객체를 생성할 때 가장 많이 사용하는 패턴