inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 자바스크립트

클래스 1

constructor 질문있습니다!

해결된 질문

287

비오

작성한 질문수 55

0

 강의 마지막에 있는 constructor를 보고 궁금증이 생겨서 코드를 한번 만들어서 돌려봤는데, 제가 생각한것과 전혀 다른 ? 방식으로 동작해서 질문드립니다.  아래 코드를 보면, 생성자에 name을 받고, 상위의 클래스를 통해서 생성자호출을 하였는데, 왜 클래스 필드의 초기값이 p1.name이 iu가 아니라 다른 값이 나올까요? 
참고: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields

Public instance fields are added with Object.defineProperty() either at construction time in the base class (before the constructor body runs), or just after super() returns in a subclass.
라고 되어있는데 이게 후자에 해당하는 부분인가요? 저는 이해가 안가는 부분이, 클래스필드를 생성자를 통해서 초기화를 해주어야 맞지 않나? 라는 생각을 하고 있거든요.. 

class Person {
    name = 'memberPerson';
    constructor(name){
        this.name = name;
    }
}

class Programmer extends Person {
    name = 'memberProgrammer';
    constructor(name) {
        super(name);
    }
}
const p1 = new Programmer('iu');
p1.name;
>>> memberProgrammer

es6 javascript

답변 2

1

이재승

안녕하세요
말씀하신대로 후자에 해당하는 동작으로 보입니다
Programmer 의 초기화는 super 이후에 시작된다는 의미라고 생각하면 이해가 되는 부분이라고 생각됩니다
아래처럼 자바에서 실행해보니 자바도 bbb 가 출력되고 있네요

public class HelloWorld{
     public static void main(String []args){
        B b = new B("ccc");
        System.out.println(b.name);
     }
}

class A{
    public String name = "aaa";
    public A(String name) {
        this.name = name;
    }
}

class B extends A{
    public String name = "bbb";
    public B(String name) {
        super(name);
    }
}

0

비오

제가 이상하게 생각하는거였군요! ㅋㅋ 감사합니다!

[해결됨]윈도우즈 환경에서 타입 스크립트 파일이 실행이 안됩니다.

1

15

5

4강 카드뉴스 자동화 자료가 안보입니다!!

0

24

2

윈도우즈 환경에서 진행중입니다.

0

22

2

4강 카드뉴스 자동화 자료

4

63

1

라이브 강의 영상 녹화본이 있을까요?

0

66

1

인증이 늦었습니다ㅜㅜ 확인부탁드립니다

0

59

1

스웨거 접속이 안되는데 확인 부탁드립니다.

0

39

1

yield 입력값

0

413

1

화살표함수에서 아규먼츠를 사용할수없어서 매개변수를 사용하라고 하셨는데..

0

335

1

실전자바스크립트 var문제점

0

315

1

강의 자료는 어디 있나요?

0

318

1

github에 정리좀하려고하는데, 해당 예제코드들 따로 공유가능할ㄲ요?

0

278

1

3:18 부분 질문드립니다. (lexical environment)

0

263

1

2:30초 경 그림 질문

0

376

3

nulish coalescing 과 optional chaining의 차이점은 무엇인가요?

0

352

1

프로토타입 예제에서 궁금한게 있습니다.

0

269

2

마지막 예제 질문드립니다.

1

228

1

궁금해서 명세를 찾아봤는데요

1

243

3

2:24경 설명

1

196

1

7분42초

1

187

1

리액트 내에서 const질문입니다.

1

219

1

궁금한것이 있습니다.

1

353

1

sample 파일 예제 소스는 어디있죠 ??

1

291

1

각 함수가 실행되면

2

193

1