> 웹 프론트엔드 > JS 튜토리얼 > javascript_기본지식 중 hasOwnProperty() 메소드 사용 안내

javascript_기본지식 중 hasOwnProperty() 메소드 사용 안내

WBOY
풀어 주다: 2016-05-16 16:10:45
원래의
1432명이 탐색했습니다.

개요

hasOwnProperty() 메서드는 객체에 지정된 고유 속성이 포함되어 있는지 확인하는 데 사용됩니다.

문법
obj.hasOwnProperty(prop)

매개변수

•소품

•탐지할 속성의 이름입니다.

설명

Object.prototype을 상속하는 모든 개체는 프로토타입 체인에서 hasOwnProperty 메서드를 상속합니다. 이 메서드는 개체에 특정 고유 속성이 포함되어 있는지 여부를 감지하는 데 사용할 수 있습니다. 이 메서드는 프로토타입 속성의 속성을 무시합니다. 체인에서 상속됩니다.


예 1: hasOwnProperty 메소드를 사용하여 객체에 특정 고유 속성이 포함되어 있는지 확인

다음 예에서는 객체 o에 자체 속성 prop이 포함되어 있는지 확인합니다.

코드 복사 코드는 다음과 같습니다.

o = new Object();o.prop = '존재';functionchangeO() {
o.newprop = o.prop;
o.prop;}o.hasOwnProperty('prop') 삭제
// true를 반환합니다
ChangeO();
o.hasOwnProperty('prop')
// false를 반환합니다

예시 2: 자기 속성과 상속 속성의 차이

다음 예에서는 hasOwnProperty 메소드가 자체 속성과 상속된 속성을 처리하는 방식의 차이점을 보여줍니다.

코드 복사 코드는 다음과 같습니다.

o = new Object();o.prop = '존재';o.hasOwnProperty('prop'); // true를 반환합니다
o.hasOwnProperty('toString'); // false를 반환합니다
o.hasOwnProperty('hasOwnProperty')
// false를 반환합니다



예 3: 객체의 모든 자체 속성 순회

다음 예에서는 객체의 모든 속성을 탐색할 때 상속된 속성을 무시하는 방법을 보여줍니다. 여기서 for..in 루프는 열거 가능한 속성만 탐색합니다. 이는 일반적으로 우리가 원하는 것입니다. 방법도 비슷한 요구를 충족할 수 있습니다.

var buz = {
안개: '스택'};
for (buz의 var 이름) {
If (buz.hasOwnProperty(이름)) {
Alert("확실히 안개(" name ")입니다. 값: " buz[name]);
}
그렇지 않으면 {
경고(이름);
// toString 또는 다른 것
          }}



예 4: hasOwnProperty 메소드가 모호할 수 있음

객체에 자체 hasOwnProperty 메소드가 있는 경우 프로토타입 체인에서 동일한 이름을 가진 메소드가 숨겨집니다.

var foo = {
HasOwnProperty: 함수() {
         false를 반환합니다.
},
bar: '여기에 용들이 있습니다'};foo.hasOwnProperty('bar')
// 항상 false를 반환합니다
// 이런 상황이 걱정된다면 프로토타입 체인에서 실제 hasOwnProperty 메소드를 직접 사용하면 됩니다
({}).hasOwnProperty.call(foo, 'bar')
//참
Object.prototype.hasOwnProperty.call(foo, 'bar')
//참


위 내용은 이 글에 설명된 내용 전부입니다. 모두 마음에 드셨으면 좋겠습니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿