melius
[JS] 객체 본문
객체는 프로퍼티(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