블로그 보관함

2014년 3월 10일 월요일

JavaScript 17 함수들의 함수화 (다중 연산 수행)

여러 개의 계산을 동시에 수행하기 위해 함수들을 한 개체(함수)로 묶어서 멀티 태스킹이 가능하게 만들어 준다.


html

<script src="calculator2.js"></script>
<script>
"use strict";
// 3 * 2 + 7 - 5 = ?
// 5 - 4 * 2 / 9 = ?
var calc1 = makeCalculator();
var calc2 = makeCalculator();
calc1.init(3);
calc2.init(5);
calc1.multiple(2);
calc2.minus(4);
calc1.plus(7);
calc2.multiple(2);
calc1.minus(5);
calc2.divide(9);
calc1.printResult();
calc2.printResult();

/* var number, op;
number = prompt('input number');
init(number);
op = prompt('input operand');
switch(op){
case +:
plus()
}
printResult(); */
</script>


js

function makeCalculator() {
var calculator = new Object();
calculator.sum = 0;
calculator.str = '';
calculator.plus = function(value) {
this.sum += value;
this.str += ' + ' + String(value);
};
calculator.minus = function(value) {
this.sum -= value;
this.str += ' - ' + String(value);
};
calculator.multiple = function(value) {
this.sum *= value;
this.str += ' * ' + String(value);
};
calculator.divide = function(value) {
this.sum /= value;
this.str += ' / ' + String(value);
};
calculator.init = function(value) {
if (arguments.length == 0) {
this.sum = 0;
this.str = '';
} else {
this.sum = value;
this.str += String(value);
}
};
calculator.printResult = function() {
console.log(this.str, '=', this.sum);
};
return calculator;
}

댓글 없음:

댓글 쓰기