본문 바로가기

개발/JS

[스크랩] Javascript: hasOwnProperty 쓰는 이유

const copy = {};

let sum = 0;
for (let key in obj) {
  if (obj.hasOwnProperty(key)) {
    sum += copy[key] = obj[key] * 2;

  }
}

 

위의 코드에서는 왜 hasOwnProperty를 사용할까?
왜냐하면 프로토타입 체인을 통해 새로운 값을 추가적인 property를 만드는 경우 원치 않는 결과가 발생할 수 있기 때문!

누군가가 다음 코드를 새로 추가했다고 하자

 

Object.prototype.toText = function() {...}

 

그러면 반복문에 hasOwnProperty를 사용하는 부분이 없다면 toText 값이 sum에 더해져 문제가 발생할 수 있다!

 

for (let key in obj) {
  sum += copy[key] = obj[key] * 2;
}



sum => NaN

출처: https://mygumi.tistory.com/330

'개발 > JS' 카테고리의 다른 글

[JS] 이메일 정규식  (0) 2019.11.16
[Cypress] Cypress 사용하여 Express로 만든 웹 서버 테스트 해보기  (0) 2019.09.15
[Jest] describe  (0) 2019.09.14
[NodeJS] EventEmitter  (0) 2019.08.24
[JS] 웹 워커 (Web Worker)  (0) 2019.08.24