개발 - 언어/JavaScript

JavaScript 기초 정리 - 01

수토리지 2022. 4. 4. 17:50

- 자바스크립트 객체

  • 자바스크립트에서는 객체가 "왕"
  • 거의 모든것들이 객체 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)"으로써 사용됨 ]

 

※ 두 방법 모두 결과적으로는 같은 복합 객체를 만들어냄. 둘 모두 객체를 생성할 때 가장 많이 사용하는 패턴