자바스크립트에서 call
함수는 Function.prototype
의 메서드로 주어진 this 값과 함께 단일 함수를 호출하도록 사용된다.
func.call(thisArg, arg1, arg2, ... );
func
: 호출하려는 함수thisArg
: 함수 내부에서 this로 사용할 객체arg1
, arg2
, ... : 함수에 전달될 인수들function greet(greeting, puctuation){
console.log(greeting + ", " + this.name + puctuation);
}
var person1 = {name: 'Alice'};
var person2 = {name: 'Bob'};
// call 메서드를 사용하여 this를 person1로 설정하고 greet 함수 호출
greet.call(person1, 'Hello', '!'); // 출력 Hello, Alice!
greet.call(person2, 'Hi', '!'); // 출력 Hi, Bob!
하나의 객체에 정의된 메서드나 함수를 다른 객체에 대해 사용하려는 경우 call을 사용할 수 있다.
함수나 메서드가 특정 객체의 컨텍스트 (즉, this
값)에서 실행되어야 할 때 유용하다.
비슷한데 인수를 배열로 받음
유사하게 동작하는데, 새로운 함수를 반환하고, 나중에 호출할 수 있음