리팩토링 관련 질문입니다. (자스스톤)

21.05.01 21:40 작성 조회수 123

0

제로초님 안녕하세요!

얼마전 filter메소드 사용법 및 __proto__ 사용 등과 관련해서 질문을 드렸었는데 모두 빠르고 정확하게 답변해주셔서 감사합니다.

이제 강의 마지막을 향해 가고 있는 중, 하스스톤 클론 강좌 리팩토링에서 궁금한 점이 생겨서 질문드립니다.

질문

리팩토링에서 궁금한 점이 덱에서필드로 함수를 호출하지도 않았는데 어떻게 data가 덱data에서 필드data로 이동을 하게 되는지 잘 모르겠습니다. 코드를 글자 그대로 해석해보면 덱에서필드로 함수가 'end' 를 반환하지 않았다면 내덱생성(1) 을 호출한다 정도로 해석되는데요, 해당 조건문은 어떻게 해석해야 하는걸까요? 

(혹시  if (덱에서필드로(데이터, 내턴) !== 'end')  자체가 함수를 호출하고 실행결과까지 체크하는 코드인가요?)

--------------------------------------------------

말씀드린 부분은, 덱에서필드로 함수 내부에서

 if (현재코스트 < 데이터.cost) {

        return 'end' ;

};

를 통해 현재코스트데이터.cost 보다 낮은 경우 'end'(혹은 true)를 리턴 후 종료되고, 턴액션수행 함수에서

 if (덱에서필드로(데이터, 내턴) !== 'end') {

        내턴 ? 내덱생성(1) : 상대덱생성(1);

};

와 같이 처리되는 부분이었습니다.

-----------------------------------------

현재 2048 듣는 중인데 테트리스까지 마무리하고 곧 리액트로 넘어갈 생각입니다.

그리고 웹게임으로 배우는 자바스크립트 출판되면 바로 읽어볼 예정입니다.

마지막으로 좋은 강의 정말 감사드립니다, 좋은 하루 되세요!

답변 1

답변을 작성해보세요.

0

함수 호출은 return값으로 대체하시면 됩니다.

if (덱에서필드로(데이터, 내턴) !== 'end')는

if ('end' !== 'end')나 if (undefined !== 'end')가 되겠죠.

함수가 아무것도 리턴을 안 하면 return undefined이니까요.