<head>
<meta charset="utf-8">
<title>js_계산기</title>
<script>
/* plus */
function sum() {
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var value;
value = parseInt(a) + parseInt(b);
document.getElementById('value').value = value;
}
/* minus */
function minus() {
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var value;
value = parseInt(a) - parseInt(b);
document.getElementById('value').value = value;
}
/* multiplication */
function multiplication() {
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var value;
value = parseInt(a) * parseInt(b);
document.getElementById('value').value = value;
}
/* division */
function division() {
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var value;
value = parseInt(a) / parseInt(b);
document.getElementById('value').value = value;
}
</script>
</head>
<body>
<h1>js_계산기입니다.</h1>
첫번째 계산 숫자 : <input type="text" id="a"> <br>
두번째 계산 숫자 : <input type="text" id="b"> <br>
<input type="button" value="+" onclick="sum();">
<input type="button" value="-" onclick="minus();">
<input type="button" value="*" onclick="multiplication();">
<input type="button" value="/" onclick="division();"> <br>
결과 : <input type="text" id="value">
</body>
코드안의 부분인 변수 a,b,value를 작성하는 부분이 반복되는데 좀더 중복을 줄여보고 싶습니다.
{ var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var value; }
function test() {
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var value;
}
/* plus */
function sum() {
test();
value = parseInt(a) + parseInt(b);
document.getElementById('value').value = value;
}
<html>
<head>
<meta charset="utf-8">
<title>js_계산기</title>
<script>
function initialize(left, right, result) {
var leftElement = document.querySelector(left);
var rightElement = document.querySelector(right);
var resultElement = document.querySelector(result);
function calculate(calc) {
return function () {
var leftValue = leftElement.value;
var rightValue = rightElement.value;
var resultValue = calc(leftValue, rightValue);
resultElement.value = resultValue;
};
};
}
</script>
</head>
<body>
<h1>js_계산기입니다.</h1>
첫번째 계산 숫자 : <input type="text" id="a"> <br>
두번째 계산 숫자 : <input type="text" id="b"> <br>
<input type="button" value="+" onclick="add();">
<input type="button" value="-" onclick="substract();">
<input type="button" value="*" onclick="multiply();">
<input type="button" value="/" onclick="divide();"> <br>
결과 : <input type="text" id="value">
<script>
var calculate = initialize('#a', '#b', '#value');
var add = calculate(function(a, b) {
return a + b;
});
var substract = calculate(function(a, b) {
return a - b
});
var multiply = calculate(function(a, b) {
return a * b
});
var divide = calculate(function(a, b) {
return a / b
});
</script>
</body>
</html>
ⓒ 자바스크립트 개발자 포럼 | 상호명 및 호스팅 서비스 제공 : 손수 | 대표 : 정현주 | 경기도 화성시 동탄장지천3길 10 | 사업자 등록번호 : 365-58-00109 | 통신판매업신고 : 2024-화성동탄-1006