함수의 호출
함수 호출은 자바스크립트의 유연함을 잘보여주는 사례
기본적인 방법
function func(){
}
func();
함수 = 일종의 객체
객체는 속성을 가지고 있다.
속성이 값이면 프로퍼티, 함수면 메소드라고 한다.
함수(객체)는 apply와 call 메소드(속성)의 접근할 수 있다.
apply와 call은 같은 취지이지만 사용방법이 다르다.
apply 사용
function sum(arg1, arg2){
return arg1+arg2;
}
sum(1,2); // 3
// sum.apply = apply는 sum이라고 하는 함수 객체에 담긴 메소드. native code(내장객체)
sum.apply(null,[1,2]);
sum.apply(null,[4,2]);
결과 : 3, 6 |
apply를 왜 쓰냥? 첫번째 인자로 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)) // this = o1
alert(sum.apply(o2)) // this = o2
// sum을 호출할 때 실행하는 대상은 o1, o2 객체의 값들이다.
결과 : 6, 185 |
위 코드를 풀어서 쓰면 아래와 같다.
function sum(){
var _sum = 0;
for(name in this){
if(typeof this[name] !== "function"){ // type이 function 아닐 경우
_sum += this[name];
}
}
return _sum
}
o1 = {val1:1, val2:2, val3:3, sum:sum}
o2 = {v1:10, v2:50, v3:100, v4:25, sum:sum}
alert(o1.sum())
alert(o2.sum())
'UI개발' 카테고리의 다른 글
BOM (Browser Object Model) (0) | 2016.07.27 |
---|---|
Object Model (0) | 2016.07.26 |
자바스크립트 함수지향 - argument (0) | 2016.05.17 |
자바스크립트 함수지향 - 유효범위 (Scope) (0) | 2016.05.15 |
alt와 title (0) | 2016.05.05 |