객체 기초(객체 생성, 접근 방법, 프로퍼티 추가/삭제)
JavaScript의 객체는 이름과 값을 한 쌍으로 묶은 데이터를 여러개 모은 것
var abc = {
a:"a",
b:"b",
c:"c"
}
객체에 포함된 이름과 값을 프로퍼티(Property)라고 하며 프로퍼티의 이름을 키(Key) 값은 똑같이 값(Value)라고 합니다.
객체 리터럴을 이용해 객체 생성
자바스크립트에서 객체를 생성하는 방법은 두 가지가 있습니다.
- 객체 리터럴을 이용
- 객체 생성자를 이용
-객체 리터럴을 이용해 객체 생성
객체의 리터럴은 { }로 표현하여 생성할 수 있습니다.
var abc = {
a:"a",
b:"b",
c:"c"
}
abc 변수에 리터럴을 이용해 객체를 대입했습니다. 프로퍼티는 키와 값으로 이루어져있습니다.
프로퍼티로는 a, b, c가 있고 객체의 값은 어떤것이 들어와도 상관이 없고 각 프로퍼티는 ,(쉼표)를 이용해 구분합니다.
-객체 생성자를 이용해 객체 생성
생성자를 이용하는 방법은 함수를 이용합니다. 객체의 프로퍼티는 this를 붙여 선언합니다. ES6에서 추가된 클래스를 사용하는 방법도 있습니다.
function abc() {
this.a = "a";
this.b = "b";
this.c = "c";
}
var test = new abc(); // 객체 생성
console.log(test.a); // -> a
console.log(test.b); // -> b
console.log(test.c); // -> c
함수를 이용해 생성자를 만들어 객체를 생성할때에는 new 연산자를 사용해 객체를 생성하게 됩니다.
생성자를 이용하면 새로 생성할 객체의 초기값을 지정할 수 있습니다.
function abc(a, b, c) {
this.a = a;
this.b = b;
this.c = c;
}
var test = new abc("c", "b", "a"); // 객체 생성
console.log(test.a); // -> c
console.log(test.b); // -> b
console.log(test.c); // -> a
-생성자를 왜 사용하는가?
생성자를 사용하는 이유는 이전에 리터럴을 이용해서 객체를 만들때에는 계속해서 같은 객체를 반복해서 다시 적어주게 불편하게 되고 코드가 지저분해집니다.
따라서 생성자를 이용해서 만들게 되면 필요한 객체를 선언하고 그 선언한 객체를 반복적으로 적지 않고 간단하게 new 연산자를 이용해 간단하게 새로운 객체를 생성할 수 있고 원하는 프로퍼티의 초기값을 징정할 수 있기 때문에 사용됩니다.
객체에 함수 추가하기
자바스크립트에서는 객체에 있는 함수를 메소드라고 합니다. 이 메소드를 추가하려면 지금까지 했던 방법과 같이 하시면 됩니다. 함수를 대입시켜주면 됩니다.
function abc() {
this.a = "a";
this.b = "b";
this.c = "c";
this.show = function() {
console.log(this.a + " " + this.b + " " + this.c);
}
}
var test = new abc(); // 객체 생성
test.show() // -> a b c
객체의 데이터에 접근 방법
객체에 있는 프로퍼티에 접근하는 방법은 2가지가 있습니다.
- 마침표(.)를 이용(점 표기법)
- 대괄호([])를 이용(괄호 표기법)
-마침표를 이용해 접근 방법(점 표기법)
var abc = {
a:"a",
b:"b",
c:"c"
}
console.log(abc.a); // -> a
console.log(abc.b); // -> b
console.log(abc.c); // -> c
객체.프로퍼티 형식으로 값에 접근이 가능
-대괄호를 이용해 접근 방법(괄호 표기법)
var abc = {
a:"a",
b:"b",
c:"c"
}
console.log(abc["a"]); // -> a
console.log(abc["b"]); // -> b
console.log(abc["c"]); // -> c
객체["프로퍼티 이름(키)"] 형식으로 접근이 가능
객체의 프로퍼티 추가/삭제
객체에 없는 프로퍼티를 추가하고 싶다면 그냥 쓰면됩니다.
대괄호를 이용하는 경우 키값은 " "를 붙여 주어 사용합니다.
var abc = {
a:"a",
b:"b",
c:"c"
}
abc.d = "d";
abc["e"] = "e";
console.log(abc); // -> {a: "a", b: "b", c: "c", d: "d", e: "e"}
객체에 있는 프로퍼티를 삭제하는 방법은 delete 연산자를 이용해 삭제할 수 있습니다.
C/C++, Java같은 언어는 객체에 있는 프로퍼티를 삭제할 수 없지만 자바스크립트는 가능합니다.
var abc = {
a:"a",
b:"b",
c:"c"
}
delete abc.c;
console.log(abc); // -> {a: "a", b: "b"}
'프로그래밍 > JavaScript(JS)' 카테고리의 다른 글
자바스크립트(JavaScript) - 클로저(Closure) (0) | 2021.09.23 |
---|---|
자바스크립트(JavaScript) - Execution Context(실행 문맥)과 코드 실행 및 내부 동작 원리 (0) | 2021.09.23 |
자바스크립트(JavaScript) - 템플릿 리터럴(Template literals) (0) | 2021.09.06 |
자바스크립트(JavaScript) - 데이터 타입 (0) | 2021.09.06 |
자바스크립트(JavaScript) - 변수, 변수 선언, 호이스팅 (0) | 2021.09.06 |