Web/JavaScript

[JavaScript] 자바스크립트 객체(object) (1) : 참조 및 생성

728x90

 


자바스크립트 객체

- JS의 기본 타입은 객체(object)

- 객체 : 이름과 값으로 구성된 프로퍼티의 정렬되지 않은 집합

- 함수가 객체의 프로퍼티의 값으로 오면, 메소드(method0라고 부른다

 

- 객체의 프로퍼티 및 메소드 참조

객체이름.프로퍼티이름
객체이름["프로퍼티이름"]

객체이름.메소드이름()
var person = {
    name: "홍길동",
    birthday: "030219",
    pId: "1234567",
    fullId: function() {
        return this.birthday + this.pId;
    }
};

person.name    // 홍길동
person["name"] // 홍길동
person.fullId() // 0302191234567
person.fullId;  // function () { return this.birthday + this.pId; }

- 메소드를 참조할 때 괄호를 붙이지 않으면, 메소드 그 자체를 참조하여 메소드 정의 그 자체가 반환된다

 

 

 

 

 


객체 생성

 

1. 리터럴 표기(literal notation)를 이용한 방법

var 객체이름 = {
    프로퍼티1이름 : 프로퍼티1의값,
    프로퍼티2이름 : 프로퍼티2의값,
    ...
};

 

 

 

2. 생성자 함수(constructor function)를 이용한 방법

- new 연산자를 사용하여 객체를 생성하고 초기화할 수 있다

- 이 때 사용되는 메소드를 생성자(constructor)라고 하며, 새롭게 생성되는 객체를 초기화하는 역할을 한다

- JS는 원시 타입을 위한 생성자를 미리 정의하여 제공한다

- (예) 자바스크립트에서 제공하는 생성자를 사용

var day = new Date(); // new 연산자를 사용하여 Date 타입의 객체를 생성함.
document.write("올해는 " + day.getFullYear() + "년입니다.");

- 사용자가 직접 객체 생성자 함수를 작성하여 사용할 수도 있다

 

 

 

3. Object.create() 메소드를 이용한 방법

- Object.create() 메소드 : 지정된 프로토타입 객체와 프로퍼티를 가지고 새로운 객체로 만든다

- 사용자가 프로토타입 객체를 직접 명시할 수 있다는 점에서 유용하다

Object.create(프로토타입객체[, 새로운객체의프로퍼티1, 새로운객체의프로퍼티2, ...]);
var obj = Object.create(null, {             // null 프로토타입을 사용하여 새로운 객체를 만들고
    x: { value: 100, enumerable: true },    // x좌표를 나타내는 열거할 수 있는 프로퍼티와
    y: { value: 200, enumerable: true }     // y좌표를 나타내는 열거할 수 있는 프로퍼티를 추가함.
});
obj.x;                      // x좌표
obj.y;                      // y좌표 
Object.getPrototypeOf(obj); // 객체의 프로토타입을 반환해 줌.

 

 

 

 

 

 

 

[참고자료] http://tcpschool.com/javascript/intro

 

728x90