두 속성 모두 Object.Prototype : Object.Prototype.hasOwnProperty () 및 Object.Prototype.ispropertyof ()에 의해 제공됩니다.
먼저 HasownProperty () 메소드를 설명하고 사용하십시오. ispropertyof () 메소드를 설명하고 사용하십시오
이것들을 최소한 프로토 타입 체인을 이해해야합니다.
1. Object.Prototype.HasOwnProperty ()
개요
hasownProperty () 메소드는 객체에 지정된 속성이 포함되어 있는지 결정하는 데 사용됩니다.
문법
obj.hasownproperty ( "Property Name"); // 인스턴스 OBJ가 괄호 안에 속성을 포함하는지 여부는 사실이라면, 그렇지 않으면 거짓입니다.
설명하다
객체를 상속하는 모든 객체는 프로토 타입 체인에서 hasownproperty 방법으로 상속됩니다. 이 방법은 객체에 특정 속성이 포함되어 있는지 여부를 감지합니다. INS와 달리이 방법은 프로토 타입 체인에서 상속 된 특성을 무시합니다.
예
1. 객체에 특정 속성이 포함되어 있는지 여부를 결정하기위한 hasownProperty () 메소드 사용
다음 예제는 Object O가 자체 속성 소품을 포함하는지 여부를 감지합니다.
var o = new Object (); o.prop = "ensists"; function change () {o.newprop = o.prop; delete o.prop;} o.hasownproperty ( "prop") // truechange () // O.hasownproperty ( "prop")의 소품 속성을 삭제 한 후, 삭제 후, ()의 소품을 삭제하는지 (). 존재하지 않습니다2. 자신의 속성과 상속 된 속성의 차이
다음 열은 hasownproperty () 메소드의 차이가 자체 특성과 상속 특성을 취급하는 것을 보여줍니다.
var o = new Object (); o.prop = "ensists"; O.HasOwnProperty ( "prop"); // 자체 속성 O.HasOwnProperty ( "TOSTRING"); // 객체 프로토 타입에서 물려받은 거짓 메소드 ( "HasOwnproperty");
3. 프로토 타입 체인을 수정 한 후 HasownProperty ()의 포인팅 예는 다음과 같습니다.
다음 열은 프로토 타입 체인을 수정 한 후 상속 속성의 hasownProperty () 메소드 간의 차이를 보여줍니다.
var o = {name : 'jim'}; function person () {this.4. hasownProperty ()를 사용하여 객체 자체의 속성을 가로 지르십시오.
다음 열은 물체를 가로 지르는 동안 상속 된 속성을 무시하고 자체 속성을 얻는 방법을 보여줍니다.
참고 verse forin은 객체 상속에서 열거 가능한 속성을 가로 질러옵니다.
var o = {gender : 'ma'} function person () {this.name = "zhang san"; this.ge = 19;} person.prototype = o; var p = new person (); for (var k in p) {if (k)) {console.log ( "Original Properties :"+K); 다른 곳에서 속성 : "+k); // gender}}5. HasownProperty 방법을 덮어 쓸 수 있습니다
객체에 고유 한 hasownProperty () 메소드가 있으면 프로토 타입 체인의 hasOwnProperty () 메소드가 덮어 씁니다.
var O = {성별 : '남성', HasownProperty : function () {return false;}} O. HasownProperty ( "Gender"); // return false // 솔루션 방법을 사용하지 않으면 전화를 사용하십시오. 메소드 ({})2. Object.Prototype.isprototypof ()
개요
isprototylef () 메소드는 다른 객체의 프로토 타입 체인에 객체가 존재하는지 테스트합니다.
문법
// Object1은 Object2의 프로토 타입입니까? 즉, Object2는 Object1의 프로토 타입입니다. 그렇다면, true를 반환합니다.
설명하다
isprototype () 메소드를 사용하면 다른 객체의 프로토 타입 체인에 객체가 존재하는지 확인할 수 있습니다.
예
1. isprototype ()을 사용하여 다른 객체의 프로토 타입에 객체가 존재하는지 확인합니다.
var o = {}; function person () {}; var p1 = new person (); // 원래 프로토 타입에서 상속되었지만 이제는 person.prototype = o; var p2 = new person (); // 옥소에서 상속받는 것이 불가능합니다. Console.log (O.isprototype (p2)); // true는 p2의 프로토 타입입니다2. ispropertyof ()를 사용하여 다른 개체의 프로토 타입 체인에 객체가 존재하는지 확인합니다.
var o = {}; function person () {}; var p1 = new person (); // 원래 프로토 타입에서 상속되었지만 이제는 사람에게 액세스 할 수 없습니다. pro로 타입 = o; var p2 = new person (); // oconsole.log (p1))에서 상속받은 O.Sprototype (p1)); Console.log (O.isprototypof (p2)); // true o는 p2 console.log (object.prototype.isprototypof (p1)); // trueconsole.log (object.prototyp.isprotoptyf (p2)); // true의 프로토 타입입니다P1의 프로토 타입 체인 구조는 P1 => 원래 Person.Prototype => Object.Prototype => NULL입니다.
P2의 프로토 타입 체인 구조는 p2 => o => object.prototype => null입니다
P1과 P2는 모두 객체를 갖습니다. 프로토 타입은 대상의 프로토 타입 체인에 있습니다.
3. 요약
1. hasownproperty : 객체에 이름을 준 속성이나 객체가 있는지 여부를 결정하는 데 사용됩니다. 그러나이 방법은 객체의 프로토 타입 체인 에이 특성을 가지고 있는지 확인할 수 없으며, 이는 객체 자체의 구성원 여야합니다.
2. IsPrototype는 지정된 객체 인스턴스에 프로토 타입 체인이 존재하는지 여부를 확인하는 데 사용됩니다. 그렇다면 true를 반환하고 그렇지 않으면 false를 반환합니다.
위의 것은 편집기가 소개 한 JS의 HasownProperty () 및 isprototype () 속성 예제에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!