Employee.prototype = new Person()와Bridge.prototype = Person.prototype차이
195
작성한 질문수 40
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이니까 프로퍼티가 없는건가요?
답변 3
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





