Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 이벤트 루프
- localtunnel
- 웹팩
- fetch 취소
- 실행 컨택스트
- 번들러
- 렉시컬 환경
- 매클로태스크
- 넘블
- 마이크로태스크
- 비동기 작업
- 함수형
- hoisting
- 자바스크립트
- 로컬터널
- Lexical environment
- pushstate
- JavaScript
- 클론코딩
- relatedTarget
- 화살표 함수
- 호출 스택
- Call stack
- webpack
- AbortController
- 이터러블
- debounce
- 유사배열
- 호이스팅
- 로드마크
Archives
- Today
- Total
내가 보려고 만든 개발 공부 일지
Javascript - in vs hasOwnProperty 본문
in 연산자는 객체에 지정된 속성이 있는지를 확인한다.
"prop" in obj --> 객체 obj 에 "prop" 이라는 속성이있다면 true, 없다면 false 를 리턴한다.
객체 기본 속성인 hasOwnProperty 도 해당 객체의 속성유무를 판단해 true / false 를 리턴하는데,
그럼 이 둘의 차이는 뭘까..?
아래 예제를 보자.
function Person(){};
Person.prototype.eyes = 2;
var kim = new Person();
kim.hasOwnProperty("eyes"); // false
"eyes" in kim; // true
위 코드에서 객체 kim은 eyes를 직접 가지고있지 않기때문에 hasOwnProperty 가 false 를 리턴하지만 in 은 true를 리턴한다.
즉, hasOwnProperty는 객체가 직접 가지고있는 속성만 체크하지만, in 은 프로토타입 링크로 연결된 상위 프로토타입 까지 쭈욱 탐색한다.
그래서 "toString" in kim 를 한다면 역시 true를 리턴한다.
'Javascript' 카테고리의 다른 글
history.pushState ( 화면 전환 ) (0) | 2021.09.21 |
---|---|
Javascript - Prototype object (0) | 2021.07.16 |
Javascript - 프로토타입? (0) | 2021.07.12 |
call() 과 apply() 의 this 바인딩 (0) | 2021.07.02 |
Falsy / Truthy 한 값 (0) | 2021.07.02 |
Comments