For Programmer

자바스크립트 - Object객체 본문

Programming language/JavaScript

자바스크립트 - Object객체

유지광이 2020. 7. 24. 15:34
728x90

자바스크립트에서는 함수도 객체이다.

Object객체란?

* 자바스크립트의 모든 객체는 Object 객체를 상속 받는데, 그런 이유로 모든 객체는 Object 객체의 프로퍼티를 가지고 있다

Object객체의 API 사용

* Object객체의 내부 메서드 contain를 생성하여 모든 객체들은 Object객체를 상속받기때문에 모든 객체들은 contain메서드를 사용할 수있다.

Object 객체를 직접 커스터마이징 할경우 발생할 수있는 문제

*위의 코드를 바탕으로 객체 o 를 for in 문으로 출력해보면 다음과같이출력이 된다.

 

출력결과

*object는 모든객체의 부모이기때문에 object의 prototype에 메서드를 커스터마이징할경우 모든 객체는 for in문으로 출력시 해당 함수도 같이출력하게된다. (원래 상속을 받게되면 for in문으로 출력시 부모의 prototype에 있는 모든 함수까지 출력하게됨.) 따라서 if(객체이름.hasOwnProperty(name)) { } 으로 상속받지않고 자신의속성인것만 출력하게해주는 위 object메서드를 사용하던가 object객체에 커스터마이징하는건 자제해야한다.

 

 

*다음과 같은 상황을 방지하기 위해서는 hasOwnProperty라는 Object객체의 내부 메서드를 이용해야하는데 이는 배열이나 객체내부의 원소이름을 인자로 받아 그것이 상속받은 원소일 경우 false반환  자신의 원소일 경우 true값을 반환해준다.

 

728x90
Comments