-
[Javascript 이론] Object 프로퍼티 열거 시 특징 (for...in문)To infinity/Javascript 이론 2021. 7. 8. 08:59
모든 프로토타입 열거
for..in문은 순회하는 객체의 프로퍼티 뿐만 아니라 상속받은 프로토타입의 프로퍼티까지 열거한다.
즉, 객체의 프로토타입 체인 상에 존재하는 모~든 프로토타입의 프로퍼티 중에서 프로퍼티 어트리뷰트 [[Enumerable]] 값이 true인 항목은 모두 열거한다는 것이다.
[참고] 프로퍼티 어트리뷰트 [[Enumerable]] 는 프로퍼티의 열거가능 여부를 나타내며 불리언 값을 갖는다.
좀 쉽게 얘기하자면 나의 프로퍼티뿐만 아니라 내가 속해있는 프로토타입의 프로퍼티를 모두 열거한다는 것이다.
하지만 객체 자신의 프로퍼티인지 확인해야해
만약에 객체 나 자신의 프로퍼티만 열거하고 싶다면 Ojbect.prototype.hasOwnProperty 메서드를 사용해 객체 자신의 프로퍼티인지를 확인해야 한다.
배열에서는 for나 for...of문, forEach 사용권장
배열도 객체이기 때문에 for..in문을 사용하면 상속받은 프로퍼티가 포함될 수 있기 때문이다.
'To infinity > Javascript 이론' 카테고리의 다른 글
[Javascript] Object_프로토타입 1 (0) 2021.07.08 [Javascript 이론] Object_함수는 일급객체, 함수 고유의 프로퍼티는? (0) 2021.07.08 [Javascript 이론] 객체의 프로퍼티 키, 값 불러오는 법 (0) 2021.07.08 [Javascript 이론] Map (feat. object) (0) 2021.07.04 [Javascript 이론] 일반함수, ES6 메서드 함수, 화살표함수 비교 (0) 2021.07.04