강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

issac님의 프로필 이미지
issac

작성한 질문수

코어 자바스크립트

gomu.__proto__.getAge()

작성

·

202

2

Person.prototype.age =100 일 때

gomu.proto.getAge() 가 왜101이 나오고

gomu.getAge()는 왜 31 나오나요??

gomu.proto.getAge()는 this가 gomu.proto에 바인딩 되고

다른 하나는 gomu에 바인딩 되는데 . 이게 어떻게 결과에 영향을 미치게되는 것인가요

답변 1

2

정재남님의 프로필 이미지
정재남
지식공유자

Person.prototype === gomu.proto 입니다.

그러니까 Person.prototype.age === gomu.proto.age 가 되겠죠

gomu.proto.setOlder()를 실행하면 이는 메소드를 호출한 것이므로 이때의 this는 '점' 앞에까지,

즉 [ gomu.proto ] 가 될테고, 이는 Person.prototype 과 같으므로,

Person.prototype의 age값이 1 증가하게 될것입니다.

한편 gomu.getAge()를 실행하면 역시 메소드를 호출한 것이므로 이때의 this는 '점' 앞에까지,

즉 [ gomu ] 가 될 것이므로, gomu의 age 값이 1 증가하게 됩니다.

issac님의 프로필 이미지
issac

작성한 질문수

질문하기