1.isPrototypeOf isPrototypeOf는 지정된 객체 object1이 다른 객체 object2의 프로토타입 체인에 존재하는지 확인하는 데 사용됩니다. 그렇다면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
형식은 다음과 같습니다.
object1.isPrototypeOf(object2);
object1은 객체의 인스턴스입니다.
object2는 프로토타입 체인이 확인되는 또 다른 객체입니다.
프로토타입 체인을 사용하여 동일한 객체 유형의 여러 인스턴스 간에 기능을 공유할 수 있습니다.
object2의 프로토타입 체인에 object1이 포함되어 있으면 isPrototypeOf 메서드는 true를 반환합니다.
object2가 객체가 아니거나 object1이 object2의 프로토타입 체인에 나타나지 않으면 isPrototypeOf 메서드는 false를 반환합니다.
사용 예는 다음과 같습니다.
var re = /^ s*/;
// 여기에 정규식 개체를 정의합니다.
// RegExp가 re의 프로토타입 체인 개체인지 확인하고 true를 반환합니다.
var bIsptt = RegExp.prototype.isPrototypeOf( re);
2. hasOwnProperty
hasOwnProperty는 객체에 명명된 속성이 있는지 또는 객체가 프로토타입 체인에 있는지 여부를 확인할 수 없습니다. . 이 특성은 개체 자체의 구성원이어야 합니다.
프로토타입 체인이 아닌 객체 자체에 의해 속성 또는 메서드가 정의된 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
형식은 다음과 같습니다.
object.hasOwnProperty(proName); >판단 proName의 이름은 객체 객체의 속성이나 객체가 아닙니다. 사용 예는 다음과 같습니다.
// 프로토타입 체인의 속성을 감지할 수 없으므로 false를 얻습니다.
var bStr = "Test String".hasOwnProperty("split");
// String 객체의 프로토타입에는 이미 이 속성이 있으므로 자연스럽게 반환됩니다. true
var bStr1 = String.prototype.hasOwnProperty("split");
// 프로토타입의 속성이 감지되지 않으므로 true를 반환합니다.
var bObj = ({fnTest:function(){}} ).hasOwnProperty("fnTest");