공부하는 블로그

(Javascript) 리플렉션(reflection) 본문

Develop/JavaScript

(Javascript) 리플렉션(reflection)

모아&모지리 2018. 3. 6. 14:21

객체에 어떤 속성들이 있는지는 특정 속성을 접근해서 반환하는 값을 보면 쉽게 알수 있습니다. 이때 typeof 연산자는 속성의 타입을 살펴보는데 매우 유용합니다.


1
2
3
4
5
6
7
8
1.    각 변수에 대한 typeof 연산자 값을 작성하시오.
    var value; --> undefined
    var value = NaN ; --> number
    var value = {}; --> object
    var value = []; --> object
    var value = function() {}; --> function
    var value = null; --> object
 
cs


때때로 해당 객체의 속성이 아니라 프로토 타입체인상에 있는 속성을 반환할 수 있기 때문에 주의할 필요가 있습니다.


1
2
typeof flight.toString //'function'
typeof flight.constructor //'function'
cs

리플렉션을 할 때 원하지 않는 속성을 배제하기 위한 두가지 방법

1) 함수값을 배제하는 방법

2) 객체에 특정 속성이 있는지를 확인하여 true/false 값을 반환하는 hasOwnProperty 메소드를 사용함

(hasOwnPropertsms 프로토타입 테인을 바라보지 않음)


1
2
3
flight.hasOwnProperty('number'// true
flight.hasOwnProperty('constructor'// false
 
cs