JAVASCRIPT

[JS] call(), apply() 차이점

개발자 배찌 2022. 12. 2. 11:05
728x90

회사에서 막대그래프 차트를 그리다가
해당 차트의 값에 대하여 yAxes에 데이터들의 Max값을 주기위한 방법을 찾다가 call, apply 함수를 발견하게되었다.

해결방법
Chart.js에서 yAxes 부분에
max: Math.max.apply(null, [${chartList.brsdCnt1}, ${chartList.brsdCnt2}, ${chartList.brsdCnt3}, ${chartList.brsdCnt4}]);

이 코드를 넣어주면 Max값을 뽑을 수 있음!!


자, 그러면 call() 과 apply()를 알아보자.

const obj = {
	age = 20
}

function myInfo(hobby){
	console.log("나의 취미는 " + hobby + “이고, 내 나이는 ” + ${this.age} + "이다" );
}

myInfo("독서"); //나의 취미는 독서이고, 내 나이는  이다 
myInfo.call(obj, "독서"); //나의 취미는 독서이고, 내 나이는 20이다
myInfo.apply(obj, ["독서"]); //나의 취미는 독서이고, 내 나이는 20이다


call()과 apply()는 함수를 호출하는 함수이다. 그러나 그냥 실행하는것이아니라 첫번째 인자에 this로 setting하고싶은 객체를 넘겨주어 실행한다.

call과 apply 차이점은
첫번째 인자값을 제외하고 두번째 파라미터에 인자값을 넣을때, apply는 배열로 넣는다는 점이다.