Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

melius

[JS] 객체 본문

JavaScript

[JS] 객체

melius102 2019. 12. 30. 12:08

객체는 프로퍼티(Property)가 있고, 함수인 프로퍼티를 메소드(Method)라 한다.

 

1. 객체 생성

1) 객체 리터럴(Object Literal)

var object = {
    key1: "value1",
    key2: "value2",
};

console.log(object.key1, object['key2']);
for(var key in object) { console.log(object[key]); }

delete object.key1;		// delete property

 

2) Object 생성자 함수를 이용한 객체생성

내장객체 Object 생성자 함수를 이용하여 아래와 같이 객체를 생성할 수 있다.

var obj = new Object();

obj.key1 = "value1";
obj.key2 = "value2";

console.log(obj.key1, obj['key2']);

Object 객체의 다양한 메소드를 이용하여 객체를 다룰수 있다.

// methods of Object
console.log(Object.keys(obj));				// Array(2)
console.log(Object.values(obj));			// Array(2)
for (let [key, value] of Object.entries(obj)) {
    console.log(`${key}: ${value}`);			// template string, ES6
}

console.log(Object.keys(Object));			// Array(0)
console.log(Object.getOwnPropertyNames(Object));	// Array(23)

 

3) 객체 생성자 함수(Object Constructor Function)

생성자 함수명은 PascalCase로 표기 권장

function Person(name, math, computer) { // 생성자 함수 선언
    this.name = name;
    this.math = math;
    this.computer = computer;
}

// method는 공유 메모리 공간에 선언됨
Person.prototype.sum = function ( ) {
    return this.math + this.computer;
}

var person1 = new Person('ra', 100, 100); // 인스턴스 생성
console.log(person1.sum());

객체 생성자 함수의 return 문에 다른 객체가 반환되는 경우에는 new 연산자를 사용해도 해당 객체를 반환된다.

function Robot() {
    this.company = 'KUKA';
    return { country: 'germany'};	// if return other object
}

var robot = new Robot();
console.log(robot.company);		// undefined
console.log(robot.country);		// germany

 

4) 클래스(Class)

ES6 부터 사용 가능한 개념으로 클래스명은 PascalCase로 표기 권장

class Person { // 클래스 선언
    constructor(name, math, computer) {
        this.name = name;
        this.math = math;
        this.computer = computer;
    }

    sum ( ) {
        return this.math + this.computer;
    }
}

var person1 = new Person('ra', 100, 100); // 인스턴스 생성
console.log(person1.sum());

 

'JavaScript' 카테고리의 다른 글

[JS] 프로토타입  (0) 2020.01.01
[JS] this  (0) 2020.01.01
[JS] 함수  (0) 2019.12.30
[JS] 연산자  (0) 2019.12.25
[JS] 변수와 자료형  (0) 2019.12.24
Comments