javascript

함수와 메서드 차이

Bittersweet- 2022. 1. 3. 16:44
728x90

메서드를 수행하기 위해서는 객체를 통해서 해당 메서드를 수행하여야 하며, 동작을 수행하는 주체는 객체이므로 객체에게 그 동작을 수행하라고 지시해야 함.

함수는 함수 자체가 그 동작을 정의한 함수객체이기 때문에 자기 자신을 수행함.

 

또한 자바스크립트 객체에서 프로퍼티 값이 함수인 경우, 일반 함수와 구분하여 메서드라고 함.

(자바스크립트 객체 - 키 key와 값 value으로 구성된 프로퍼티의 집합)

  • 프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 또는 symbol값
  • 프로퍼티 값: 모든 값
let foo = {};
foo.a = 1;
foo.b =2;
foo.sum=function() {console.log(foo.a+foo.b);};

foo.sum(); // 3

 

* 프로퍼티 키에 문자열이나 symbol값 이외의 값을 지정하면 암묵적으로 타입이 변환되어 문자열이 되는데, 만약 프로퍼티에 아무런 값도 할당하지 않는다면?

자바스크립트에서 값을 할당하지 안고 변수만 선언하는 경우, 자바스크립트 엔진이 강제적으로 undefined를 할당하기 때문에 key-value pair인 프로퍼티에서는 syntax error가 발생하며, 프로퍼티는 undefined나 null을 할당한다고 삭제되지 않으므로 프로퍼티의 삭제는 delete라는 keyword를 사용해야 함.