자바스크립트 객체 메서드와 객체 함수의 차이점 (Differences between Object Methods and Object Functions)

자바스크립트에서 객체를 다룰 때, 메서드(methods)와 함수(functions)라는 두 가지 용어를 종종 듣게 됩니다. 이 두 용어의 차이를 이해하는 것은 자바스크립트의 객체 지향 프로그래밍에 대한 이해를 높이는 데 도움이 됩니다.

객체 메서드 (Object Methods)

객체의 메서드는 해당 객체에 속해있고, 객체의 프로퍼티로 정의된 함수입니다. 객체 메서드는 주로 객체의 상태를 변경하거나 특정한 작업을 수행하기 위해 사용됩니다. 예를 들어, 배열 객체의 push() 메서드는 새로운 요소를 배열의 끝에 추가하는 작업을 수행합니다.

아래는 배열 객체의 push() 메서드를 사용하는 예제 코드입니다:

let fruits = ['apple', 'banana', 'orange'];

fruits.push('grape'); // 배열의 끝에 'grape'를 추가합니다.

console.log(fruits); // ["apple", "banana", "orange", "grape"]

지금 예제에서 fruits 객체는 배열이기 때문에 push() 메서드를 사용할 수 있습니다. 이 메서드는 fruits 객체의 상태를 변경하여 새로운 요소를 추가합니다. 이처럼 객체 메서드는 일반적으로 해당 객체의 상태를 변화시키는 역할을 수행합니다.

객체 함수 (Object Functions)

객체 함수는 메서드와는 조금 다릅니다. 객체 함수는 객체에 속해있지 않고, 전역 스코프에 정의된 함수입니다. 이 함수는 일반적으로 객체의 상태를 변경하는 작업이 아니라, 객체에 대한 작업을 수행하기 위해 사용됩니다. 예를 들어, Math 객체의 random() 함수는 무작위로 생성된 숫자를 반환합니다.

아래는 Math.random() 함수를 사용하는 예제 코드입니다:

let randomNumber = Math.random();

console.log(randomNumber); // 0 이상 1 미만의 무작위 숫자 출력

여기서 Math 객체는 자바스크립트에서 제공하는 내장 객체이며, random() 함수는 객체 함수입니다. 이 함수는 Math 객체에 속해 있지 않지만, 자바스크립트에서 제공하는 전역 함수로 사용됩니다. 이처럼 객체 함수는 주로 객체와 관련된 작업을 수행하기 위해 사용됩니다.

정리

정확하게 객체의 상태를 변화시키는지, 아니면 객체와 관련된 작업을 수행하는지에 따라 객체의 메서드와 함수를 구분할 수 있습니다. 이러한 차이점을 이해하면 객체 지향 프로그래밍 개념을 보다 효과적으로 활용할 수 있습니다.