객체(Object) 는 실제로 존재하는 모델을 표현하고자 할 때 관련된 속성을 포함해 생성합니다.
const toy = {
type: 'robot',
price: '$30',
};
하지만 객체
로 구현한 모델들은 속성만 가지고 있는 것이 아니라 특정한 동작들을 수행하는 경우도 많습니다. 이런 동작들은 메서드(Method)
라고 불리는 함수로 정의할 수 있는데, 이번 포스트에서는 이 메서드
에 대해서 알아보겠습니다.
메서드
는 객체
의 프로퍼티
를 만드는 것과 같은 방식으로 만들 수 있는데, 값
에 함수를 넣어준다고 생각하면 됩니다. 객체
를 생성할 떄 포함해서 만들거나, .
연산자를 통해 만듭니다.
function
, 화살표 함수(Arrow Function)
둘 다 가능합니다.
function
으로 만드는 방식과화살표 함수
로 만드는 방식은this
의 값에서 차이가 있지만 지금은 넘어가겠습니다.
const toy = {
type: 'robot',
price: '$30',
move: function() {
alert('move');
},
};
// or
const toy = {
type: 'robot',
price: '$30',
move: () => {
alert('move');
},
};
const toy = {
type: 'robot',
price: '$30',
};
toy.move = function() {
alert('move');
}
// or
toy.move = () => {
alert('move');
};
프로퍼티
의 값을 읽는 방식과 마찬가지로 .
연산자를 통해 메서드를 실행할 수 있습니다.
const toy = {
type: 'robot',
price: '$30',
move: function() {
alert('move');
},
};
toy.move();
프로퍼티
를 삭제하는 방식과 마찬가지로 delete
를 사용해서 메서드
를 삭제할 수 있습니다.
const toy = {
type: 'robot',
price: '$30',
move: function() {
alert('move');
},
};
delete toy.move;
toy.move(); // Uncaught TypeError: toy.move is not a function