티스토리 뷰

arguments
1) arguments 개념
arguments는 사용자가 전달한 인자들이 담겨있는 객체다.
- .length를 통해 함수가 몇개의 인자 전달 받았는 지를 알 수 있다.
- arguments[i] 를 통해 각 자리의 인자 값을 알 수 있다.
내장함수
this는 var this = o1; 과 암시적으로 같다.
실행되는 그 순간에는 o1이라는 객체의 메소드 sum이 된다는 것.
즉, o1 = { va1 : 1, val2 : 2, val3 : 3, sum : sum} 에 o1.sum()과 같다.
- .length를 통해 함수가 몇개의 인자 전달 받았는 지를 알 수 있다.
- arguments[i] 를 통해 각 자리의 인자 값을 알 수 있다.
function sum(){
var i, _sum = 0;
for( i=0; i< arguments.length; i++){
document.write(i + ":" + arguments[i] + <'br/>');
_sum += arguments[i];
}
return _sum;
}
document.write('result : ' + sum(1,2,3,4));
자바스크립트는 매개변수의 수가 함수의 정의와 달라도 에러가 발생하지 않는다.
function one(arg1){
console.log(
'one.length', one.length, //1
'arguments', arguments.length //2
);
}
one('val1', 'val2');
apply내장함수
function sum(arg1, arg2){
return arg1+arg2;
}
sum(1,2) //3
sum.apply //function apply(){[native code]} native code : 내장함수란 뜻
sum.apply(null, [1,2]); //3 -첫번째 인자가 null로 들어갈 때는, 쓰지않기.
사용하는 이유
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[name];
}
return _sum;
}
alert(sum.apply(o1)) //6
alert(sum.apply(o2)) //185
o1 객체를 sum의 인자 값으로 전달한다.this는 var this = o1; 과 암시적으로 같다.
실행되는 그 순간에는 o1이라는 객체의 메소드 sum이 된다는 것.
즉, o1 = { va1 : 1, val2 : 2, val3 : 3, sum : sum} 에 o1.sum()과 같다.
'생활 코딩 > JAVASCRIPT' 카테고리의 다른 글
함수를 호출 (0) | 2021.08.17 |
---|---|
클로저 (0) | 2021.08.17 |
값으로서의 함수와 콜백 (0) | 2021.08.17 |
유효범위 (0) | 2021.08.17 |
객체 (4) | 2021.08.16 |