• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

gomu.__proto__.getAge()

18.07.31 12:39 작성 조회수 101

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