-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
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에 바인딩 되는데 . 이게 어떻게 결과에 영향을 미치게되는 것인가요
답변을 작성해보세요.
2
정재남
지식공유자2018.07.31
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 증가하게 됩니다.
답변 1