Arguments, 매개변수
함수 안에서 함수의 정보를 담고 있는 객체입니다. 배열과 비슷하지만 배열은 아닙니다.
매개변수와 인자의 차이 function A(arg){ }arg는 매개변수
A(1); -> 1은 인자
function sum(){
var i, _sum = 0;
for(var 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)); //사용자가 전달한 인자
매개변수와 관련된 두가지 수가 있습니다. arguments.length와 함수.length
arguments.length는 함수로 전달된 실제 인자의 수를 의미하고
함수.length는 함수에 정의된 인자의 수를 의미합니다.
function zero(){
console.log(
'zero.length', zero.length, //0
'arguments', arguments.length //0
);
}
function one(arg1){
console.log(
'one.length', one.length,
'arguments', arguments.length
);
}
function two(arg1, arg2){
console.log(
'two.length', two.length,
'arguments', arguments.length
);
}
zero(); // zero.length 0 arguments 0
one('val1', 'val2'); // one.length 1 arguments 2
//함수의 이름. Length는 매개변수를 정의한 숫자, arguments 몇 개의 인자를 전달했는가
two('val1'); // two.length 2 arguments 1
함수의 호출
function sum(arg1, arg2){
return arg1+arg2;
}
alert(sum(1,2)); //결과는 3입니다.
alert(sum.apply(null, [1,2])) //결과는 3입니다.
sum.call
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){ //this는 호출 시 정해집니다.
_sum += this[name];
}
return _sum;
}
alert(sum.apply(o1)) // 6 o1객체를 apply인자로 주게되면 o1이 함수에서 this가 됩니다.
//var this = o1; 이라는 값이 됩니다.
alert(sum.apply(o2)) // 185
출처 : 생활코딩 강의
'프로그래밍 > JavaScript' 카테고리의 다른 글
자바스크립트 : 생성자와 new (2) | 2017.11.18 |
---|---|
자바스크립트 : 객체지향프로그래밍(OOP : Object Oriented Programming) (0) | 2017.11.17 |
자바스크립트 JavaScript 간단한 범위에 관한 문제 (0) | 2017.11.16 |
자바스크립트 : 값으로서의 함수와 콜백, 클로저(Closure) (0) | 2017.11.12 |
자바스크립트 유효범위: 전역변수와 지역변수 (0) | 2017.11.12 |