2012년 4월 15일 일요일

Javascript Chaining Pattern

Javascript Chaining Pattern


<script type="text/javascript">
/*
Title: Chaining Pattern
made by 스티브Park ㅋㅋㅋㅋㅋ

*/
var test = {
val1 : 2
, val2 : 3
, total : 0
, plus : function(){ // 2+3 을 계산하여 total값을 새로 설정
this.total = this.val1 + this.val2
return this;
}
, minus1 : function(){ // total값에 - 2를 뺀 값을 total에 다시 설정
this.total = this.total - this.val1
return this;
}
,alert : function(){ //메시지 출력
alert(this.total);
}
};
test.plus().minus1().alert(); //plus에서 2+3을 더하고 이값을 minus1을 실행함으로써 -2한다 그리고 출력


//좀더 응용한 plus 계산기
var cal = { //계산기
sum : 0 //합을 저장한다
,add : function(){ //인자값을 받아 합친다
var arg = arguments
, argLength = arguments.length
, i = 0;
for (; i < argLength; i+=1){ //받은 인자값을 저장
this.sum += arg[i].parseNum(); // parseNum() : 문자열일 경우 숫자로 변경해 합침
}
return this; //합친 값을 넘김
}
,alert : function(){ //메시지 출력
alert(this.sum);
}
};

Object.prototype.parseNum = function(){ // parseNum() : 문자열일 경우 숫자로 변경해 합침
var num = parseFloat(this);
if( isNaN(num) ) return "0";
return num;
}

cal.add(1,2).add(4).alert(); //1+2 +4 출력 , result = 7
cal.sum = 5; //sum을 5로 다시 셋팅
alert(cal.sum); //sum에 5가 저장된게 보여짐 5출력
cal.add(3,4).add(5).alert(); //sum에 저장된 5 + 3+4 + 5 가 계산됨 17출력

</script>
 
 응용해서 작업 하면 좋을거같다

댓글 없음:

댓글 쓰기