더북(TheBook)

while 루프의 호출부를 다시 한 번 보자.


while (++i < n) {
  d = data[i];
  points.push([+getX.call(this,d,i), +getY.call(this,d,i)]);
}

 

getX.call(this,d,i)가 하는 일은 뭘까? 코드를 그대로 따라가면 마치 getX 함수가 this 객체(나중에 자세히 설명한다)의 멤버인 양 인자 d, i를 넘겨 호출한다. this는 특별한 변수로서 대략 뭉뚱그려 말하면 this가 있는 곳의 함수를 호출하는 ‘점(.) 앞의 객체(object before the dot)’라고 할 수 있다.

꼭 이렇게 요란스럽게 써야 하나? 그냥 getX(d,i)를 호출하면 안 될까? 자바스크립트에서는 this를 잘 활용하는 것이 중요한 설계 포인트다.

TIP

자바스크립트에서 ‘this’는 설계 관점에서 절호의 기회가 될 수 있다. 잘 써먹도록 하자!

 

예제 1-5는 자바스크립트 언어의 강력함을 여실히 보여준다. 데이터는 years가 전부고, line.x 함수는 인덱스 i로(여기서는 i를 사용) x 좌푯값을 계산한다. 그런데 line.y는? getValue 함수를 호출하는 것 같은데, 해당 스코프에는 그런 이름을 가진 함수가 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.