0. 전제 조건
JavaScript 객체의 속성은 두 가지 형태의 존재로 나뉩니다. 하나는 존재 인스턴스이고 다른 하나는 프로토 타입 객체의 존재입니다.
위의 내용에 따르면 속성을 감지 할 때 4 가지 상황이 있습니다.
사례 나 프로토 타입 객체에서는 아닙니다
예에서는 프로토 타입 객체에 존재하지 않습니다.
예에서는 프로토 타입 객체에 존재합니다
두 인스턴스와 프로토 타입 객체에 존재합니다
1. HasownPrototype ()
HasownPrototype ()는 문자열 형식의 속성 이름을 수락하고 인스턴스 자체 에이 속성이있는 경우 true를 반환합니다 (Case 2/Case 4). 그렇지 않으면 거짓을 반환합니다 (사례 1/사례 3).
코드 사본은 다음과 같습니다.
functino person () {}
person.prototype.name = 'Apple';
var person1 = new Person ();
var person2 = 새로운 사람 ();
person1.name = '바나나';
console.log (person1.HasOwnPrototype (name)); //진실
console.log (person2.hasownprototype (name)); //거짓
2. 운영자
IN 연산자는 인스턴스 자체 또는 프로토 타입 객체에 속성이 존재하는지 여부에 관계없이 true를 반환합니다 (Case 2/Case 3/Case 4). 그렇지 않으면 거짓을 반환합니다 (사례 1).
코드 사본은 다음과 같습니다.
Console.log ( 'Name'in Person1); //진실
console.log ( '이름'의 '이름'); //진실
3. 프로토 타입의 특성을 감지하십시오
IN 연산자와 HasownProperty ()를 결합하면 기능을 사용자 정의하여 주어진 속성이 프로토 타입에 존재하는지 여부를 감지 할 수 있습니다.
코드 사본은 다음과 같습니다.
함수 HASPROTOTYPEPROPERTY (Object, Name) {
return! object.hasownPrototype (이름) && (객체의 이름);
}
console.log (hasprotoTypeproperty (person1, 'name')); // false
console.log (hasprotoTyproperty (person2, 'name')); // true
주어진 속성은 프로토 타입에 존재하며 true를 반환합니다 (사례 3). 그렇지 않으면, false (사례 1/사례 2/사례 4).
위는이 기사의 전체 내용입니다. 나는 당신이 그것을 좋아하기를 바랍니다