자바스크립트 기본 - 함수의 호출
함수의 호출 - https://opentutorials.org/course/743/6550
아래는 기본적으로 함수를 정의하고 호출하는 방법
function func(){
}
func();
아래는 함수를 호출하는 특이한 방법이다.
function sum(arg1, arg2){
return arg1+arg2;
}
alert(sum.apply(null, [1,2])) // sum은 함수이기때문에 자바스크립트가 가지고 있는 메소드를 가질 수 있다. apply는 자바스크립트의 내장메소드이다. sum.apply(null, [1,2])을 사용하면 sum(1,2)으로 함수를 호출한 것과 같은 결과이다.
sum.apply(null, [1,2]) 이것은 sum(1,2) 이것과 같은 결과 이므로 간단하게 함수를 호출할때는 사용하는 것을 권장하지 않는다.
예제를 통해 다른방법으로 함수를 호출할 수 있다는 것만 보여주는 것이다.
아래 예제를 통해 apply를 사용하는 이유를 알 수 있다.
//o1, o2는 객체이다.
o1 = {val1:1, val2:2, val3:3}
o2 = {v1:10, v2:50, v3:100, v4:25}
function sum(){
var _sum = 0;
for(name in this){ //sum함수 내에서는 this가 정해지지 않고, sum함수가 호출될때 this가 정해진다. sum.apply를 호출 하면 인자로 준 o1객체가 this가 된다.
_sum += this[name];
}
return _sum;
}
alert(sum.apply(o1)) // 6, apply(null)에서 null값에 o1객체를 넣은 것이다. 해당 코드가 호출되면 o1객체의 값들을 다 더하는 뜻과 같은 의미가 된다.
alert(sum.apply(o2)) // 185