obj = {val1: 1, val2: 2, val3: 3}
function sumAll() {
let result = 0;
for(key in this) { // this는 obj를 가리킨다.
result = result + this[key];
}
return result;
}
// 첫번째 인자에 객체를 넣으면
// 마치 함수가 객체 안에 들어간 것처럼 돼서
// this로 객체를 접근할 수 있다.
console.log(sumAll.apply(obj)); // 6
// 모든 함수에는 기본적으로 apply 등의 메소드가 제공된다.
// 그래서 함수를 sum.apply() 형태로도 쓸 수 있다.
function sum(a, b) {
return a + b;
}
// 따로 객체를 넣어줄 필요가 없으면 null로 한다.
// 두번째 인자의 배열이 sum 함수에 들어가는 인자가 된다.
console.log(sum.apply(null, [1, 2])); // 3
// apply 대신 call을 쓴다면 배열 대신 순수 인자가 들어간다.
// call(null, 1, 2);
'자바스크립트 > 메소드' 카테고리의 다른 글
자바스크립트 bind 메소드 (0) | 2020.01.24 |
---|---|
자바스크립트 배열(Array) 정렬하는 sort 메소드 (0) | 2020.01.22 |
자바스크립트 배열(Array) 메소드 (0) | 2020.01.15 |
자바스크립트 스트링(String) 메소드 (0) | 2020.01.15 |