inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

제주코딩베이스캠프 Code Festival: JavaScript 100제

문제12 : 게임 캐릭터 클래스 만들기

문제 12번

207

noeliden1

작성한 질문수 9

1

안녕하세요 강의 잘 듣고 있습니다. 많은 도움이 되고 있어요 감사합니다.

문제 12번에서 class 작성시에

왜 attack 함수는 constructor 내부에서 정의하지 않고 밖에서 정의하나요?
constructor 내부에서 this.attack = function() { console.log('파이어볼') };
이렇게 정의해도 잘 동작하는거 같은데. 만약에 다른점이 있다면 무엇인가요?

감사합니다!

javascript 코테 준비 같이 해요!

답변 1

2

-J-

안녕하세요 답변드리겠습니다. 

constructor 내부에 정의된 함수는 앞으로 인스턴스가 만들어 질때마다 새롭게 메모리에 할당되지만,  constructor 밖에 정의된 함수는 인스턴스가 만들어질 때 참조가 되어 연결되어집니다.

때문에 밖에 정의하는 것이 constructor 내부에 함수를 정의 할 경우에 비해 더 효율적으로 자원을 사용한다고 생각하시면 될것 같습니다. 아래 코드를 참조하시면 좀 더 이해가 잘 되실겁니다.

감사합니다 :)

class Test {
constructor() {
this.fn = function () {
console.log("ex");
};
}
}

const test1 = new Test("1");
const test11 = new Test("2");

console.log(test1.fn === test11.fn); // false

class Test2 {
constructor() {}
fb() {
console.log("ex");
}
}
const test2 = new Test2("1");
const test22 = new Test2("2");

console.log(test2.fb === test22.fb); // true

71번 깊이 우선 탐색 질문드립니다.

0

201

1

이렇게 하는건 안좋은 방법일까요?

0

362

0

강의상 32번째 줄 질문드립니다

1

314

1

안녕하세요..!

0

437

0

1~100번 외의 자료에 대한 코드는 없을까요?

0

277

0

질문있습니다.

0

215

0

33번 문제 for문대신 join 사용

0

224

0

const, let

0

296

1

2진법 변환 문제 관해서 질문있습니다.

1

322

1

객체 식별자는 변수 또는 promt로 가지고 올수 없다는 건가요?

1

255

1

문자열이 둘다 숫자, 왜 가능해요?

1

239

1

20번 문제에 parseInt()로 10진수를 왜 하나요?

1

206

1

질문 있습니다.

0

219

0

선생님 이 포문이상한데요..

1

231

1

만약 1980년 1월1일 부터의 로직을 짜려면 코드 어느 부분을 수정해야할까요??

0

233

0

알고리즘 공부방법에 대해서 질문있습니다.

0

221

0

질문 드립니다!!

0

235

1

for 반복문 관련 문의

0

198

0

47번 문제 질문

0

242

1

행렬 곱에서 i,j,k를 len으로 통일시키면 2*3 3*2행열 계산이 안됨니다.

1

233

1

function문 호출하기 질문입니다~

0

221

0

8번) 점 접근자로 숫자 불가하네요!

0

155

0

병합정렬에서 질문드립니다.

0

267

1

선생님 궁금한점이있습니다.

3

167

0