hasOwnProperty,in
hasOwnProperty: 객체에 지정된 이름의 속성이 있는지 여부를 나타냅니다.
in: 대상이 이 속성에 접근할 수 있는지 여부 (대상에 직접 접근하거나 원형을 통해 접근하는 것을 포함)
다음 예제 코드를 보십시오.
(function () {
function Person() {
}
var p = Person.prototype;
p.name = " ";
p.age = 24;
var person1 = new Person();
console.log(person1.hasOwnProperty("name")); // false
console.log("name" in person1); //true
})();
두 줄 코드 추가
person1.name = "meng";
console.log(person1.hasOwnProperty("name")); //true
양자의 차이를 이용하여 우리는 이 속성이 대상에 존재하는지 원형에 존재하는지 판단할 수 있다.
판단 과정은 in이true라면 현재 대상의 부류에 이 속성이 있음을 설명하고hasOwnProperty로,true는 그가 이 속성을 가지고 있음을 의미하며,false는 아직 이 속성에 값을 부여하지 않았다는 것을 의미한다.
교묘하게 기억하기:hasOwnProperty,hasOwn은 바로 그 자신이 이 속성을 가지고 있는지 없는지를 나타낸다.
in, 어떤 안에서, 현재 방 안의 소파에 있는 물건도 이 방에 이런 물건이 있다고 말할 수 있다.
이상의 사고방식에 따라 스스로 파생하는 방법은 실현을 목적으로 대상이 이런 원형 방법이 있는지 판단하는 것이다
Object.prototype.hasPrototypeProperty=function ( pro) {
return !this.hasOwnProperty(pro) && (pro in this);
};
코드 응용 프로그램 (person1 성명 동상)
console.log(person1.hasPrototypeProperty("name")); //true
person1.name = " ";
console.log(person1.hasPrototypeProperty("name")); //false
응용에서 알 수 있듯이 이 방법의 효과는 현재 대상이 원형적인 방법이면true로 돌아가고 자신이 이 속성을 성명한 후에false로 돌아간다.
전재 대상:https://www.cnblogs.com/chenluomenggongzi/p/6130685.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.