Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 1.54 KB

File metadata and controls

71 lines (51 loc) · 1.54 KB

back    |    write by Local

2.1 call 메서드

* 이 글은 코어자바스크립트 책을 참고하여 기록하였습니다.



call 메서드

Function.prototype.call(thisArg[, arg1[, arg2[]]])

// 첫번째 인자 : this로 바인딩
// 그 이후 인자 : 호출할 함수의 매개변수

임의의 객체를 this로 지정할 수 있고
메서드의 호출 주체인 함수를 즉시 실행하도록 하는 명령.


call 메서드(1)

예제 3-14.

01  var func = function (a, b, c) {
02    console.log(this, a, b, c);
03  };
04
05  func(1, 2, 3);                      // Window{ ... } 1 2 3
06  func.call( { x: 1 }, 4, 5, 6 );     // { x: 1 } 4 5 6
  • 05   func(1, 2, 3);
    • 객체의 메서드를 그냥 호출하면 this는 객체를 참조.
  • 06   func.call( { x: 1 }, 1, 2, 3);
    • 임의의 객체 {x: 1} 를 this로 지정.

call 메서드(2)

예제 3-15.

01  var obj = {
02    a: 1,
03    method: function (x, y){
04      console.log(this.a, x, y);
05    }
06  };
07
08  obj.method(2, 3);                   // 1 2 3
09  obj.method.call({ a: 4 }, 5, 6);    // 4 5 6
  • 09   obj.method.call( {a: 4}, 5, 6);
    • 임의의 객체 {a: 4} 를 this로 지정.
      • obj에 a 프로퍼티가 있으므로 a에 4 할당하여 this는 4로 출력.