인프런 커뮤니티 질문&답변
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 증가하게 됩니다.





