JS (Java Script)

apply() 와 call() / apply() 이용해서 함수의 파라미터에 배열 넣기.

GABOJOK 2023. 9. 6. 20:42

apply() 함수

어떤 함수를 또다른 object에서 사용하고 싶을때 쓴다.  

 

      var person =  {

        인사 : function(){

          console.log(this.name + '안녕')

        }

      }

 

      var person2 ={

        name : '모아나'

      }

 

person.인사 함수를 또다른 object에서 사용하고 싶을때 

      가져오고 싶은 함수.apply(적용하려 하는 또다른 object,  파라미터(생략가능)  )

 

      person.인사.apply(person2);    //모아나안녕

      person.인사();  //undefined안녕

 

 

 .apply 이용해서 함수의 파라미터 자리에 배열 넣기

 

     function plus(a,b,c){

        console.log(a+b+c);

     };

    let aarray = [22, 44, 66];

 

    plus.apply(undefined, aarray);

 

undefined 하는 이유

아무곳에도 적용,실행 하지 못하게 하려고. 그냥 생으로  plus함수 실행됨.

그렇지만 비워두면 문제생겨서 아무값이나 넣은거.

 

 

 

call( ) 함수.

.apply( ) 함수와 실행 결과, 사용법이 똑같다. 

 

      person.인사.call(person2)     //apply 한것과 동일한 값이 나온다.

 

 

apply() 와 call ()  차이점

apply는 파라미터를 array 형태로 집어넣을 수 있다.

        person.인사.apply(person2, [1, 2]);

 

call은 파라미터를 그냥 집어넣어야 함. 

        person.인사.apply(person2, 1, 2);