JS

Apply/Call

gurwhddl 2022. 9. 30. 19:10

var person = {인사 : function() {

console.log(this.name) }

 

var person2 = {name : 'a'} 

 

내가 다른 오브젝트에 있는 함수를 일시적으로 가져와서 쓰고싶을 때 사용

person.인사.apply(person2,(함수파라미터)) - person에 있는 인사라는 함수를 person2에 파라미터에 뭐를 넣어서 apply하고싶다는 뜻

적용하면 this가 person2 오브젝트를 가르키기 때문에 a 가 나온다. 

 

call도 똑같은 함수인데 apply는 저 파라미터 자리에 array를 넣을 수 있지만 call은 안된다고함 

이래서 this가 되게 유용한 함수라는건가 싶음.. 

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

person.인사.call(person2, 1,2)

...문법이 없을때 array를 파라미터에 집어넣고싶을때 썼다고함  

 

function sum(a,b,c) {return a+b+c }

...이 없다면 sum(arr.[0], arr[1], arr[2]) 이렇게 해줘야되는데 이걸

sum.apply(undefined(이거말고 아무거나 넣어도됨, arr) 해주면 array상태로 파라미터에 넣기 가능 ( apply에 별 의미는없음 )

요즘은 그냥 ...쓰면됨