반응형
fV, sV로 파라미터를 빼주고
sumF함수에 값을 입력해서 함수 실행!
이게 꼬이면 어려우니까 더 연습해 ..
함수는 함수의 인자로 전달 가능
function cal(func, num) {
return func(num);
}
function increase(num) {
return num+1;
}
function decrease(num) {
return num-1;
}
console.log(cal(increase, 5));
함수는 함수의 리턴값으로 리턴이 가능
function cal(myT) {
var funcs = {
'plus' : function(left, right) {
return left + right;
},
'minus' : function(left, right) {
return left - right;
}
}
return funcs[myT]; // 리턴 값으로 함수 사용
}
console.log(cal('plus')(1,3));
// cal('plus') 이 부분은 funcs.plus, funcs[plus]이므로 cal('plus')의 값으로
// function(left, right) {return left + right}를 가지고 있는 것이고 이 값인 함수를 호출하기 위해서
// cal('plus')() 이중 호출의 형태를 보이게 된 것!
함수는 동적으로 프로퍼티를 생성 및 할당이 가능
// 함수 선언문 방식으로 add() 함수 정의
function add(x,y) {
return x + y;
}
// add()함수도 객체처럼 프로퍼티를 가질 수 있다.
// add()함수 객체에 result, status 프로퍼티를 추가해 본다.
add.result = add(3,4);
add.status = 'complete';
console.log(add.result); // 7
console.log(add.status); // 'complete'
자바스크립트에서 함수는 특정기능의 코드를 수행할 뿐만 아니라
일반 객체처럼 자신의 프로퍼티를 가질 수 있는 특별한 객체라고 볼 수 있다!
function cal(mode){
var funcs = {};
funcs[mode] = function(left, right){return left + right};
return funcs[mode]; // 리턴 값으로 함수를 사용
}
console.log(cal('plus')(2,1)); // 3 => 동적으로 프로퍼티를 추가
변수나 배열의 요소, 객체의 프로퍼티 등에 할당이 가능
var process = [
function(input){ return input + 10;}, // 1 + 1 = 11
function(input){ return input * input;}, // 11 * 11 = 121
function(input){ return input / 2;} // 121 / 2 = 60.5
];
var input = 1;
for(var i = 0; i < process.length; i++){
input = process[i](input);
}
console.log(input); // 60.5
콜백 함수
var numbers = [20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
console.log(numbers.sort()); // [1,10,2,20,3,4,5,6,7,8,9]
// .(쩜)앞에 있는 모든 것은 객체라고 봐도 무방하다. 배열은 객체에 속한다.
// 배열객체에는 빌트인 메소드 sort가 있기 때문에 sort 메소드를 사용할 수 있다.
function sortNumber(a,b){
// 위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.
return b-a;
}
var numbers2 = [20, 10, 9,8,7,6,5,4,3,2,1];
alert(numbers2.sort(sortNumber)); // array, [20,10,9,8,7,6,5,4,3,2,1]
function calc(option, num1, num2, callback) {
var result = "";
switch (option) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
default:
result = "올바른 연산자를 사용해주세요.";
}
callback(result);
}
function println1(result) {
document.write("두 수의 합은 = " + result + "입니다.", "<br>");
}
function println2(result) {
document.write("정답은 =" + result + "입니다.<br>");
}
calc("+", 10, 20, println1);
calc("+", 10, 20, println2);
사용 방법에 따른 함수 종류
반응형
'Dev > Temp' 카테고리의 다른 글
세이브존 스크레치, 룰렛 이벤트 (0) | 2021.02.23 |
---|---|
reset.css (0) | 2020.12.15 |
좌우로 흔드는 모션 기준점 변경 (0) | 2020.11.26 |
React와 React Native 차이점! (0) | 2020.11.25 |
React Hooks 도입 시기 (0) | 2020.11.25 |