<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
object_1 = {v1 : 4, v2 : 5, v3 : 6};
object_2 = {a1 : 7, a2 : 8, a3 : 10, v4 : 9};
function sum(){
var sum_result = 0;
for(index in this){ //this는 인수로 들어온 객체의 index를 가리킨다.
sum_result += this[index];
}
return sum_result;
}
alert(sum.apply(object_1)); //object_1.sum()과 같은 기능
alert(sum.apply(object_2)); //object_2.sum()과 같은 기능
//이러한 기능을 사용하는 이유는 인수의 개수를 알 수 없을 때 this를 사용하여 함수를 정의하고 apply를 통해서 객체를 인수로 입력하여 함수를 실행하게 한다.
</script>
</body>
</html>
이러한 기능을 사용하는 이유는 인수의 개수를 알 수 없을 때 this를 사용하여 함수를 정의하고 apply를 통해서 객체를 인수로 입력하여 함수를 실행하게 한다.
함수.apply(객체)가 마치 객체.함수( )의 형태로 쓰이는 것이다.
함수 안에는 this가 필수적으로 들어가야한다.
인수의 개수를 알지 못할 때 arguments를 이용하여 함수를 구성할 수 있었다.
apply와 this를 활용해도 인수의 개수를 알지 못할 때 활용할 수 있다.
arguments를 사용할 때는 유사 배열의 개념이어서 배열의 개념으로 사용했지만
apply와 this를 사용할 때는 인수로 객체가 들어올 때 사용할 수 있다.