inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코어 자바스크립트

마지막 예제 질문드립니다!

252

이석원

작성한 질문수 3

1

arr.__proto__.__proto__.toString.call(arr)의 결과가

[object Array]인게 이해가 잘안가서 이것저것 찾아보고 정리해본건데 이런 맥락이 맞을까요?

javascript

답변 2

1

정재남

네, 대충 비슷하게 이해하셨지만,
this를 잘 생각해보실 필요가 있습니다.

Array.prototype.toString 을 호출하면 호출한 주체(this)의 각 요소를 콤마(, )로 합친 것으로 출력할 것이고,
Object.prototype.toString을 호출하면 호출한 주체(this)의 생성자 이름을 [object ?] 로 출력할 것입니다.

호출한 주체(this)가 '배열'인지 '객체'인지는 중요하지 않습니다.
toString 메소드는 그저 this로 지정된 대상을 정해진 결과로 출력할 따름입니다.

Array, Object 각각 toString의 함수 내부를 살펴보면 대충 다음과 같이 생겼습니다.

Array.prototype.toString = function() {
  return this.join(',');
}

Object.prototype.toString = function() {
  return '[' + typeof this + ' ' + this.constructor.name + ']';
}

0

이석원

완벽히 이해했습니다! 자세한 답변 감사드립니다

인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유

0

59

1

setTimeout 에서 this

0

80

1

2강부터 영상이 나오지 않습니다.

0

174

1

자바스크립트 주석에 이상한 점이 있어서 문의드립니다.

0

218

2

return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.

1

259

1

클래스 static 멤버

1

252

1

실행컨텍스트와 스택프레임

2

566

1

프로토타입으로 상속할때 브릿지 사용 이유

0

320

1

호이스팅 관련 질문

1

335

1

책 66p. 예제 3-2 질문입니다.

0

356

1

강의 내용 10:58 캡슐화 질문입니다.

1

397

1

강의 내용 5:10 질문입니다.

1

422

2

전역 공간에서의 this

0

426

2

18:31 addEventListener의 this

1

479

1

outerEnvironmentReference 질문

1

372

1

실행 컨텍스트와 클로저에 대해 질문드립니다.

1

448

1

Object.prototype.constructor의 [[prototype]] ?

1

658

1

함수를 값으로 할당할 때

2

457

1

15:54 'ddd' 사라지는 오류?

4

375

1

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

1

404

1

기본형/가변형 질문입니당

0

331

0

선생님 그러면 섹션 0만 봐도 무방한가요!?

0

334

1

Hoisting과 environmentRecord에 관한 질문입니다.

1

289

1

안녕하세요, 데이터 변경 질문입니다.

0

324

1