✅ 객체 메소드란
자바스크립트는 객체 기반 프로그래밍 언어이다. 자바스크립트가 구성하는 모든 것이 대부분 '객체'라고 할 수 있다.
👉 원시형 값을 제외한 모든 값(함수, 배열, 정규 표현식 등)을 말한다.
먼저 객체는 아래와 같이 중괄호({})로 감싸져 있고 클론(:)으로 구분되어 요소(Property, 속성)는 키(Key) : 값(Value)들이 쉼표(,)로 구분된 형태이다.
const person = {
name: "mien",
age: 20
};
모든 자바스크립트 객체는 Object 객체와 Object.prototype 객체의 모든 프로퍼티와 메소드를 상속받는다.
📑 객체의 요소(Property, 속성)와 메소드(Method)
- 요소(Property, 속성) 란 객체의 상태를 나타내는 값(Data)
- 메소드(Method)란 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작
- 자바스크립트 함수도 객체의 프로퍼티 값으로 사용 가능
- 객체의 프로퍼티 값이 함수인 경우 메소드라고 부른다.
메소드 작성 방법
//객체 메소드 정의
let myMethod = {
start: function() {
console.log("메소드 실행");
}
}
// 호출
myMethod.start();
📑 객체를 만들 때 규칙
- 프로퍼티의 이름은 중복될 수 없다.
- 프로퍼티의 키 : 값 사이에 클론(:) 표시
- 프로퍼티 추가 시 쉼표(,) 필요
- 프로퍼티 값은 어느 타입이나 가능(number, array, object, function, string)
👉 객체를 변수에 저장하면 객체 리터럴 자체가 저장되는 것이 아니라 Reference 즉, 메모리 주소가 저장된다.
const myObj_1 = {
name: "mien"
}
const myObj_2 = {
name: "mien"
};
console.log(myObj_1 === myObj_2);
//결과
false
위와 같이 false가 나오는 이유는 앞서 말한 것 처럼 메모리 Reference에 저장하기 때문이다.
✅ 객체 메소드 종류
📑 Object.key()
- 객체의 키(Key)만 담은 배열을 반환한다.
const obj = {
name: "apple",
color: "red",
price: 6500
}
Object.keys(obj) // ['name', 'color', 'price']
📑 Object.value()
- 객체의 값(Value)만 담은 배열을 반환한다.
const obj = {
name: "apple",
color: "red",
price: 6500
}
Object.values(obj);
// values === ['apple', 'red', 6500]
📑 Object.entries()
- 키, 값 쌍을 담은 배열을 반환한다.
const obj = {
name: "apple",
color: "red",
price: 6500
}
Object.entries(obj);
/* 결과
obj === [
['name', 'melappleon'],
['color', 'red'],
['price', 6500]
]
*/
📑 Object.create()
- 주어진 프로토타입(Prototype)의 객체와 속성들을 갖고 있는 새 객체를 생성한다.
📑 Object.assign()
- 하나 이상의 원본 객체들로부터 모든 열거 가능한 속성들을 대상 객체로 복사한다.
📑 Object.is()
- 두 값이 같은지 비교한다.
📑 Object.seal() / Object.isSealed()
- 다른 코드가 객체의 속성을 삭제하지 못하도록 한다.
📑 Object.getPrototype()
- 명시된 객체의 프로토타입을 반환한다.
📑 Object.setPrototypeOf()
- 프로토타입을 설정한다.(내부의 [Prototype] 속성을 설정)
📑 delete
- 객체 내에 속성을 삭제한다. 성공하면 true, 실패하면 false를 반환한다.
👉 (configurable) freeze나 seal 등의 제한이 걸려 있다면 false를 반환
var obj = {
one: 'hi',
two: 'mien',
};
obj.two; // mien
delete obj.two;
obj.two; // undefined
📑 hasOwnProperty()
- 특정 프로퍼티가 해당 객체에 존재하는지를 확인한다.
👉 해당 객체에서 직접 선언된 프로퍼티만 검사하며, 같은 이름의 프로퍼티라도 상속받은 프로퍼티는 false를 출력한다.
var obj = {
mien: 'hi',
};
obj.mien; // hi
obj.hasOwnProperty('mien'); // true
obj.toString; // function toString() { [native code] }
obj.hasOwnProperty('toString'); // false
그 외에도 더 많은 메소드들이 있지만 다음에 또 들여다 봐야겠다 (사실 너무 많다)
'Language > JavaScript' 카테고리의 다른 글
정규표현식(Regular Expression) (0) | 2023.12.12 |
---|---|
[Javascript] LocalStorage (0) | 2023.12.06 |
브라우저 이벤트(Event) (0) | 2023.12.04 |
프로토타입(Prototype) (0) | 2023.09.09 |
Class(생성자 함수, 객체 생성 방식) (0) | 2023.09.02 |