inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

셀프 체크 - 기타 기능 구현하기

let으로 구조분해할당을 했을 때 궁금한 점이 생겼습니다!

194

gigo96

작성한 질문수 20

0

 

else if (input === '3') { // 도망
let { monster } = this;
monster = null;
this.updateMonsterStat();
this.changeScreen('game');
this.showMessage(`무사히 ${this.monster.name}에게서 도망쳤습니다!`);
}
위와 같은 코드에서 this.updateMonsterStat()을 하면 텍스트를 지워주지 않는 것인지 궁금합니다!
 
배틀 부분에서 도망을 구현하고 있었습니다. 근데 습관적으로 구조분해할당을 const로 하고 monster를 null로 바꾸려고 하니 오류가 발생했습니다. 그래서 아무 생각 없이 let으로 구조분해할당을 했습니다. 그런데 여기서 monster = null을 한뒤 this.updateMonsterStat()을 했을 때 당연히 맨 아래 몬스터에 관련된 텍스트가 지워질 줄 알았는데, 지워지지 않았습니다. 그래서 monster.hp -= 10을 해봤더니 이거는 또 동작을 해서 혼란스럽습니다... 이 부분은 어떠한 문제가 있는 건가요??

 

javascript

답변 1

0

제로초(조현영)

원형을 생각하세요.

let monster = this.monster입니다.

monster = null 해봤자 this.monster는 그대로입니다.

this.monster = null 해야 합니다.

0

gigo96

답변 감사합니다!

그런데 

if (input === '1') { // 공격
const { hero, monster } = this;
hero.attack(monster);
monster.attack(hero);
if (hero.hp === 0) {
alert(`You Died! 다시 시작하세요.`);
this.quit();
} else if (monster.hp === 0) {
this.showMessage(`${monster.name}(을/를) 잡았습니다! ${monster.xp}(을/를) 얻었습니다!`);
hero.getXp(monster.xp);
this.monster = null;
this.changeScreen('game');
} else {
this.showMessage(`${hero.att}의 데미지를 주고, ${monster.att}의 데미지를 받았다.`);
}
this.updateHeroStat();
this.updateMonsterStat();
console.log(this.hero.hp, hero.hp);
}
여기서는 어떻게 this.hero.hp와 hero.hp가 동일 한건지 이해가 잘 안됩니다 ㅠㅠ

1

제로초(조현영)

const hero = this.hero 이니까 this.hero.hp와 hero.hp가

동일합니다.

다만 hero = null로 한다고 this.hero가 null이 되진 않습니다. 자바스크립트 기본 참조 특성이라고 보시면 됩니다.

0

gigo96

아아 감사합니다 ㅠㅠ 항상 좋은 강좌 잘 보고 있습니다.

자바스크립트 입문 강의 재생 안됨

0

98

2

쿵쿵따 조건문 질문입니다.

0

85

2

렛츠가릿 자바스트립트와 공유가 되나요

0

88

1

수강을 하기 전 공부순서에 관한 질문이 있습니다.

1

112

2

안녕하세요

0

111

2

1~45 필터링하는 코드에서 find대신 some써주는게 나을거같습니다.

1

82

2

고차 함수 작성법과 수업 진도 관련한 질문

0

96

3

break와 continue 9:55 내 continue 구문 질문

0

161

2

옵셔널 체이닝 적당한 깊이는 어느 정도인가요?

0

127

2

로또 추첨기 중 입력값을 검사할 때

0

151

2

2-14.else,else if,switch 관련 질문입니다.

0

119

2

가위바위보 이미지(rsp.png)가 안보여요

0

274

3

Math.random() 에 9을 곱하는 이유

0

183

4

클로저 관련해서 질문있습니다.

1

196

2

유튜브 댓글 보고 왔습니다!- 퀴즈 중복된 숫자 검사 for 문

0

249

1

event.target.textContent관련 질문

0

284

2

객체 참조 관련 질문

0

186

1

-2+ -2 = -4 음수 더하기 음수 - 셀프체크 계산기

0

495

1

별찍기 마름모 문제입니다.

0

361

2

숙제 질문

0

228

1

5강 async/await으로 가독성 높이기에서

0

240

1

야구게임 관련 질문입니다

0

192

1

쿵쿵따, 계산기에서 변수 선언

0

184

1

지뢰 힌트 사라짐(대괄호)

0

172

1