과거에 BASIC을 배울 땐 서브루틴과 함수가 분리되어 있었다. 포트란도 그러했다. 그러다가 C 언어를 배울 땐, return 유무에 따라 성질이 달라질 뿐 모두 함수로 통합이 됐다. 그러다가 JavaScript를 배울 땐, _객체_로서 함수 개념을 배우게 된다. 이 말은 함수와 자료가 통합되었다라고 말할 수 있다.

Javascript가 구현하는 함수객체는

function func1 ( ) {
  /* code */
}
  • func1()으로 쓰면 { ... } 안의 내용이 실행된다.
  • func1.abc = "def" 로 쓰면 func1를 객체 취급하여 'abc'라는 키를 추가한다.

이런 발상의 전환이 통합의 구체적인 모습이다.

  • func1.apply
  • func1.call
  • func1.bind

이런 함수는 func1 이라는 함수 객체가 만들어질 때 추가되는 속성이라고 생각하면된다.

+ Recent posts