강의

멘토링

커뮤니티

Inflearn Community Q&A

ghost22481594's profile image
ghost22481594

asked

Core JavaScript

gomu.__proto__.getAge()

Written on

·

200

2

Person.prototype.age =100 일 때

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

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

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

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

javascript

Answer 1

2

jaenam님의 프로필 이미지
jaenam
Instructor

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 증가하게 됩니다.

ghost22481594's profile image
ghost22481594

asked

Ask a question