객체의 생성 방식
1. let person = new Object();
2. let person = {}; // 객체 리터럴 방식
let person = {
key: "value", // 프로퍼티(객체 프로퍼티))
key1: "value",
key2: true,
key3: undefined,
key4: [1, 2],
key5: function () {}
}; // 객체 리터럴 방식
console.log(person);
//
key: "value"
key1: "value"
key2: true
key3: undefined
key4: Array(2)
key5: ƒ key5() {}
키 : 밸류 방식으로 생성해야함.
키는 무조건 문자로 작성
키 끼리 중복은 최대한 안되게 해야한다.
표기법
let person = {
key: "value", // 프로퍼티(객체 프로퍼티))
key1: "value",
key2: true,
key3: undefined,
key4: [1, 2],
key5: function () {}
}; // 객체 리터럴 방식
console.log(person.key1) // 점 표기법
위와 같이 Key1의 값을 꺼내고자 할 때 person.key1 이런식으로 함.
두번째 표기법
let person = {
name: '이도영',
age: 25
}; // 객체 리터럴 방식
console.log(person["name"]); // 괄호표기법
안에 괄호안에 사용하려면 무조건 문자열로 만들어서 사용해야함.
문자열이 아닌 경우 아래와 같이 문자열로 만들어야함
let person = {
name: '이도영',
age: 25
}; // 객체 리터럴 방식
const name='name';
console.log(person[name]);
동적인 파라미터를 전달받는 경우에 사용한다.
키가 고정되어있지 않는 경우에 괄호 표기법을 사용한다.
let person = {
name: '이도영',
age: 25
}; // 객체 리터럴 방식
console.log(getPropertyValue("name"));
function getPropertyValue (key) {
return person[key];
}
객체 안에 값을 추가할 때
1.
let person = {
name: '이도영',
age: 25
}
person.location = "한국";
console.log(person); // {name: "이도영", age: 25, location: "한국"}
2.
let person = {
name: '이도영',
age: 25
}
person.location = "한국";
person["gender"] ="남성";
console.log(person); // {name: "이도영", age: 25, location: "한국", gender: "남성"}
객체안에 수정하기
let person = {
name: '이도영',
age: 25
}
person.location = "한국";
person["gender"] ="남성";
person.name='이도영 A';
person["age"]= 40;
console.log(person); // {name: "이도영 A", age: 40, location: "한국", gender: "남성"}
상수로 선언한 자체 대입연산을 하지 않는 이상 const로 선언으로 해도 추가 수정하는데 오류가 안뜸.
객체 안에 프로퍼티 삭제하기
let person = {
name: '이도영',
age: 25
}
delete person.age;
console.log(person); // {name: "이도영"}
2.
let person = {
name: '이도영',
age: 25
}
delete person.age;
delete person['name'];
console.log(person);// {}
이 위에 방법들은 메모리를 그대로 나두기 때문에 아래와 같은 방법으로 삭제하는게 좋음
아래 방법은 메모리까지 없애줌
let person = {
name: '이도영',
age: 25
}
person.name = null;
console.log(person); // {name: null, age: 25}
안에 객체를 부를때
let person = {
name: "이도영", // 멤버
age: 25, // 멤버
say: function () {
console.log("안녕");
} // 메서드 -> 방법
};
person.say(); // 안녕
person['say'](); // 안녕
객체 안에 있는 함수를 메서드라고 부름
say: function () {
console.log("안녕");
} // 메서드 -> 방법
};
this. 자기 자신의 객체
this 가 예를 들면 person이라고 생각해야함
let person = {
name: "이도영",
age: 25,
say: function () {
console.log(`안녕 나는 ${this.name}`);
}
};
person.say();
person['say'](); // 안녕 나는 이도영
존재하지 않는 프로퍼티는 추가할 것 아니면 접근을 안하는게 좋음
let person = {
name: "이도영",
age: 25,
say: function () {
console.log(`안녕 나는 ${this.name}`);
}
};
console.log(person.gender); // undefined
객체 안에 해당 프로퍼티가 존재하는 지 확인하려면
let person = {
name: "이도영",
age: 25,
say: function () {
console.log(`안녕 나는 ${this.name}`);
}
};
console.log(`name : ${'name' in person}`)// name : true
console.log(`age : ${'age' in person}`)// age : true
console.log(`gender : ${'gender' in person}`)// gender : false
위와 같이 name가 person 안에 존재여부를 불리언으로 표현할 수 있다.
'JavaScript' 카테고리의 다른 글
| 반복문 (0) | 2023.06.30 |
|---|---|
| 배열 (0) | 2023.06.30 |
| 콜백 함수 (0) | 2023.06.29 |
| 함수, 함수표현식 & 함수선언식 (0) | 2023.06.29 |
| 조건문 (0) | 2023.06.26 |