inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코어 자바스크립트

Employee.prototype = new Person()와Bridge.prototype = Person.prototype차이

195

이순곤

작성한 질문수 40

0

Employee.prototype = new Person()와

Bridge.prototype = Person.prototype

차이를 잘 모륵겠습니다 TT

제가 이해한거는 맨위에 new Person()을 하면 인스턴스를 Employee.prototype 에 넣어서 Person클래스의 메소드를 상속받아서 getName(),getAge()를 쓸수있는거는 알겠는데

Bridge.prototype = Person.prototype 하면은 어떻게 되는건지 ... 그리고 Employee.prototype = new Person() 하면 프로토타입에 name , age 이름없음 나이없음 뜨는게 생성자를 통해 생성된 인스턴스여서 name ,age프로퍼티가 존재하는건가요?  쓰면서 생각났는데 그러면 그와 반대로 Person.prototype를 Bridge.prototype넣으면 인스턴스가 아니라 prototype이니까 프로퍼티가 없는건가요?

javascript

답변 3

0

MIKE.aeon

1번 답변으로 아래 링크가 더 이해하기 쉬웠습니다 ^^

https://www.inflearn.com/questions/13000

0

정재남

휴가를 다녀오느라 답변이 늦었습니다.

1.

마지막에 추론하신바와 같이 Employee.prototype = new Person()에 의하면 Employee의 prototype은 Person의 prototype을 상속받긴 하지만 그와 동시에 Person의 인스턴스가 되므로 name, age 프로퍼티가 존재하게 됩니다.

반면 Bridge.prototype = Person.prototype 에 의하면, 비어있는 Bridge 함수에 prototype이 Person의 prototype을 참조하게 됩니다. 그 상태에서 new Bridge()로 인스턴스를 생성하면, 해당 인스턴스는 Bridge함수가 비어있으므로 name, age 프로퍼티가 생기지 않은 채로 Bridge의 prototype, 즉 Person의 prototype을 상속받게 됩니다.

아래 링크도 참고하시면 좋을 것 같네요.
https://www.inflearn.com/questions/46469

2.

비슷한 질문이 있어 링크로 답변을 대체합니다.
https://www.inflearn.com/questions/61956

0

이순곤

죄송한데 질문 하나 더 드리면 

function Employee(name, age, position){

this.superClass(name,age);

this.position = position || '직책모름';

}

여기서 함수를 생성자로 쓰면 this가 인스턴스 Employee를 가르키고 prototype chaining을통해 superClass가 parent즉 person을 가르키는건 알겠는데 그러면 this.Person('고무',30); 이 어떻게되서 Employee의 프로퍼티가 되는건가요?

인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유

0

59

1

setTimeout 에서 this

0

80

1

2강부터 영상이 나오지 않습니다.

0

175

1

자바스크립트 주석에 이상한 점이 있어서 문의드립니다.

0

219

2

return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.

1

259

1

클래스 static 멤버

1

253

1

실행컨텍스트와 스택프레임

2

567

1

프로토타입으로 상속할때 브릿지 사용 이유

0

320

1

호이스팅 관련 질문

1

335

1

책 66p. 예제 3-2 질문입니다.

0

356

1

강의 내용 10:58 캡슐화 질문입니다.

1

398

1

강의 내용 5:10 질문입니다.

1

422

2

전역 공간에서의 this

0

426

2

18:31 addEventListener의 this

1

480

1

outerEnvironmentReference 질문

1

372

1

실행 컨텍스트와 클로저에 대해 질문드립니다.

1

448

1

Object.prototype.constructor의 [[prototype]] ?

1

658

1

함수를 값으로 할당할 때

2

457

1

15:54 'ddd' 사라지는 오류?

4

375

1

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

1

404

1

기본형/가변형 질문입니당

0

333

0

선생님 그러면 섹션 0만 봐도 무방한가요!?

0

335

1

Hoisting과 environmentRecord에 관한 질문입니다.

1

290

1

안녕하세요, 데이터 변경 질문입니다.

0

328

1