Programming/JS
[JavaScript] 3. JS의 객체(Object)
코딩하는 포메라니안
2022. 3. 14. 00:44
1. 객체란?
- 키(Key)와 값(Value)로 구성된 프로퍼티(Property)들의 집합
- 프로퍼티를 동적으로 추가하거나 삭제 가능
- JS의 함수는 일급객체로, 프로퍼티 값으로 함수 사용 가능
2. 객체 생성 방법
1. 객체 리터럴
- { }내에 프로퍼티를 넣어 객체 생성
let person = {
name: "홍길동",
age : 25,
introduce : function(){
console.log(`이름은 ${this.name}이고, 나이는 ${this.age}입니다.`);
}
}
console.log(person.name);//홍길동
console.log(person["name"]);//홍길동
person.introduce();//이름은 홍길동이고, 나이는 25입니다.
2. Object 생성자 함수
- new연산자와 Object 생성자 함수를 호출하여 빈 객체 생성
- 빈 객체 생성 후, 프로퍼티 or 메소드를 추가
let person = new Object(); //빈 객체 생성
//property 추가
person.name = "홍길동";
person.age = 25;
person.introduce = function(){
console.log(`이름은 ${this.name}이고, 나이는 ${this.age}입니다.`);
};
console.log(person.name);
console.log(person["name"]);
person.introduce();
3. 생성자 함수
- 동일한 프로퍼티를 갖는 객체를 여러 개 생성할 때 유용
function Person(name, age){
this.name = name;
this.age = age;
this.introduce = function(){
console.log(`이름은 ${this.name}이고, 나이는 ${this.age}입니다.`);
};
}
let p1 = new Person("홍길동", 25);
let p2 = new Person("내이름", 21);
p1.introduce();
p2.introduce();
+) 이미 정의된 변수의 값을 객체에 변수명과 값을 같게 설정하기
+) 객체 함수 단축 = function 키워드 제거
const name='홍길동', age=25;
let person = {
name,
age,
introduce(){
console.log(`이름은 ${this.name}이고, 나이는 ${this.age}입니다.`);
}
}
console.log(person.introduce());
//이름은 홍길동이고, 나이는 25입니다.
3. 속성 값 조회
- dot(.)이나 대괄호([" "])를 사용하여 조회
let person = {
"my-name" : "홍길동",
"age" : 25
}
console.log(person.region || "지역없음"); //or연산 가능 => 없으면 "지역없음"을 출력
console.log(person["my-name"]); //연산자가 중간에 있으면 []만 가능
console.log(person.age);
console.log(pereson.my-name);//error
4. 속성 값 변경/추가/삭제
1. 속성 값 변경/추가/삭제하기
let person = {
"my-name" : "홍길동",
"age" : 25
}
//1. 속성 값 변경
person.age = 26;
//2. 속성 값 추가 = 값을 할당할 때 속성이 없을 경우, 추가됨
person.region = "서울";
console.log(person);
//3. 속성 삭제
delete person.region;
console.log(person.region);//undefined
//+) 없는 속성 참조시 undefined로
console.log(person.hobby);//undefined
2. 객체는 복사X, 참조O
- p1이 person과 같은 곳을 참조하기 때문에, p1의 값을 바꾸면 person의 값도 변경됨.
let person = {
"my-name" : "홍길동",
"age" : 25
}
let p1 = person;
p1.age = 30;
console.log(person.age);//30
5. 객체 분류
- 사용자 정의 = 앞서 본 것처럼 직접 객체를 생성해서 사용하는 객체들을 말함
- Built-in Object = 제공되는 것