본문 바로가기

Dev/Temp

파라미터를 사용 해보자

반응형

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);

 


 

사용 방법에 따른 함수 종류

 

 

 

출처 : webclub.tistory.com/114

 

자바스크립트에서 함수는 값으로 취급된다

값으로서의 함수 자바스크립트에서는 함수도 객체입니다. 다시말해서 일종의 값입니다. 거의 모든 언어가 함수를 가지고 있지만 자바스크립트 함수가 다른 언어의 함수와 다른 점은 함수가 값

webclub.tistory.com

 

반응형

'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