Pokémon Evolution을 사용하여 설명된 기능 구성

요, (스카프) 개. 함수를 좋아하신다고 해서 함수가 작동하는 동안 작동할 수 있도록 함수에 함수를 넣었습니다.



어쨌든 내 친구는 코딩 방법을 배우기 시작했고 선생님이 그녀에게 요구하는 것을 이해하는 데 도움이 필요했습니다.

이것이 그녀가 나에게 보낸 것입니다:

/*
Create a function that takes in two inputs.
One should be a function and the other should be
the argument to call the input function with.

Then in the function you define call the passed in function
with the input argument. 
*/


...실례합니다만 ㅋㅋㅋ?

그녀가 보낸 예제 함수는 다음과 같습니다.

function sayHi(b,c){
c=prompt("Greet me!");
b(c);


좋아, 그게 좀 더 명확해.


자, 여기 있습니다:



내가 이해한 바에 따르면, 우리는 다른 기능을 실행하는 기능을 구축하려고 합니다. 나는 이것을 설명하기 위해 돌과 함께 포켓몬 진화의 개념을 사용했습니다.



진화는 전반적인 보편적 기능입니다.




function evolutionFn(pokemon, stone){
  stone = prompt('Which stone will you use?');
  return pokemon(stone);
}


포켓몬 자체는 별도의 기능이지만 여전히 동일한 진화 기능을 보편적으로 사용합니다. 진화의 가능성이 방대하기 때문에 가장 좋은 예는 Eevee입니다. (하지만 지금은 기본 1세대 진화를 참조하고 있습니다.)



const eevee = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'fire' ){
    return 'Congrats! You now have a Flareon!'
  }else if( userInput ==='thunder' ){
    return 'Congrats! You now have a Jolteon!'
  } else if( userInput === 'water' ){
    return 'Congrats! You now have a Vaporeon!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}


또한 완전히 다른 포켓몬도 이 진화 방법을 활용할 수 있음을 설명하기 위해 피카츄를 만들었습니다.



const pikachu = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'thunder'){
    return 'Congrats! You now have a Raichu!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}


모두 합치면 다음을 얻습니다.

function evolutionFn(pokemon, stone){
  stone = prompt('Which stone will you use?');
  return pokemon(stone);
}

const eevee = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'fire' ){
    return 'Congrats! You now have a Flareon!'
  }else if( userInput ==='thunder' ){
    return 'Congrats! You now have a Jolteon!'
  } else if( userInput === 'water' ){
    return 'Congrats! You now have a Vaporeon!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}

const pikachu = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'thunder'){
    return 'Congrats! You now have a Raichu!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}

console.log(evolutionFn(eevee));
// example: if prompt => 'fire or FIRE or even FiRe', 
// it will say "Congrats! You now have a Flareon!"
// if it's anything else, the console will return "Huh. It didn't work."


console.log(evolutionFn(pikachu));
// Should return "Congrats you now have a Raichu"! etc. etc.



Repl.it에서 라이브로 플레이하세요!




함수 구성: 큰 함수를 사용하여 본질적으로 동일한 기본 항목을 출력하는 작은 함수를 실행하려는 경우.

또한, 재미있는 사실은 -- 당신은 바보짓을 당했다는 것입니다! .map(), .split(), .join(), .reverse()를 사용해 본 적이 있다면 이미 Function Composition을 경험한 것입니다! JavaScript 메소드 ALL을 사용할 때 이것이 작동하는 것을 볼 수 있습니다. 그만큼. 시각.


읽어 주셔서 감사합니다!



저와 계속 연락하고 싶다면 저를 팔로우하세요! DM은 열려있습니다.

또한 sign up for my newsletter 코딩 부트캠프와 부트캠프 이후/개인적인(때로는 난처한) 이야기를 공유하여 스스로 학습하는 방법에 대한 팁/요령을 제공합니다!

좋은 웹페이지 즐겨찾기