개요
HasownProperty () 메소드는 객체에 지정된 속성이 포함되어 있는지 확인하는 데 사용됩니다.
문법
obj.hasownproperty (prop)
매개 변수
•소품
• 탐지 할 속성의 이름.
설명하다
객체를 상속하는 모든 객체는 프로토 타입 체인에서 hasownproperty 방법으로 상속됩니다. 이 방법은 객체에 특정 속성이 포함되어 있는지 여부를 감지하는 데 사용될 수 있습니다. IN 연산자와 달리이 방법은 프로토 타입 체인에서 상속 된 특성을 무시합니다.
예
예 1 : hasownproperty 메소드를 사용하여 개체에 특정 속성이 포함되어 있는지 확인합니다.
다음 예제는 Object O가 자체 속성 소품을 포함하는지 여부를 감지합니다.
코드 사본은 다음과 같습니다.
o = new Object (); o.prop = 'Exists'; function changeo () {
O.NewProp = O.Prop;
O.Prop;} O.HasOwnProperty ( 'prop');
// true를 반환합니다
changeo ();
O. HasownProperty ( 'prop');
// false를 반환합니다
예 2 : 자신의 속성과 상속 된 속성의 차이점
다음 예제는 HasownProperty 메소드 간의 차이가 자체 특성을 취급하고 상속 된 속성을 다루는 것을 보여줍니다.
코드 사본은 다음과 같습니다.
o = new Object (); o.prop = 'Exists'; O.HasOwnProperty ( 'prop');
// true를 반환합니다
O. HasownProperty ( 'Tostring');
// false를 반환합니다
O. HasownProperty ( 'hasownproperty');
// false를 반환합니다
예 3 : 객체의 모든 속성을 반복
다음 예제는 물체의 모든 속성을 가로 질러 상속 된 특성을 무시하는 방법을 보여줍니다. for..in 루프는 열거 가능한 특성 만 가질 수 있습니다. 이것은 일반적으로 우리가 원하는 것입니다. 또한 Object.GetOnPropertyNames () 메소드를 사용하여 유사한 요구 사항을 직접 달성 할 수 있습니다.
코드 사본은 다음과 같습니다.
var buz = {
안개 : '스택'};
for (buz의 var name) {
if (buz.hasownproperty (name)) {
ALERT ( "이것은 안개 (" + name + ") 확실히. value :" + buz [name]);
}
또 다른 {
경고 (이름);
// Tostring 또는 다른 것
}}
예 4 : hasownproperty 메소드가 차단 될 수 있습니다
객체에 고유 한 hasownproperty 메소드가 있으면 프로토 타입 체인에서 동일한 이름의 메소드가 그림자로 표시됩니다.
코드 사본은 다음과 같습니다.
var foo = {
HasownProperty : function () {
거짓을 반환합니다.
},
바 : '여기서 드래곤'}; foo.hasownproperty ( 'bar');
// 항상 false를 반환합니다
// 이것에 대해 걱정이되면 프로토 타입 체인에서 실제 HasOwnProperty 메소드를 직접 사용할 수 있습니다.
({}). hasownProperty.call (foo, 'bar');
// 진실
object.prototype.hasownproperty.call (foo, 'bar');
// 진실
위는이 기사에 설명 된 모든 내용입니다. 나는 당신이 그것을 좋아하기를 바랍니다.