// 중독 객체 .prototypeObject.prototype.bar = 1; var foo = {goo : undefined}; foo.bar; // foo에서 1'bar '; // truefoo.hasownProperty ( 'bar'); // falsefoo.hasownProperty ( 'goo'); // 진실여기서는 HasownProperty만이 정답을 줄 수 있습니다. 이는 객체의 특성을 가로 지르는 데 매우 필요합니다. 자바 스크립트에는 객체 자체에 속성이 정의되어 있는지 또는 프로토 타입 체인에서 상속되는지 여부를 알리는 다른 방법이 없습니다.
재산으로서의 hasownproperty
JavaScript는 HasownProperty를 민감한 단어로 설정하지 않으므로 HasownProperty라는 속성을 가질 수 있습니다. 현재 HasOwnProperty 메소드를 사용하여 속성을 판단 할 수 없으므로 외부 HasownProperty 방법을 사용하여 판단을 내려야합니다.
var foo = {hasownProperty : function () {return false; }, bar : '여기서 dragons'}; foo.hasownproperty ( 'bar'); // 항상 false를 반환 // 다른 객체의 hasownProperty를 사용하여 'this'로 foo ({})로 호출합니다. // true // 객체의 객체에서 hasownproperty를 사용할 수도 있습니다. // 진실요약
객체 속성이 존재한다고 판단 할 때 HasownProperty는 의존 할 수있는 유일한 방법입니다. 여기서 우리는 in in in in in in in in in in alloop to traverse 객체를 사용하면 hasownproperty를 사용하면 프로토 타입 객체 확장으로 인한 문제를 피할 수 있습니다.
다음은 다른 네티즌의 추가 사항입니다.
JavaScript의 Object Object 프로토 타입의 HasownProperty ()는 프로토 타입 체인에서 상속되지 않고 객체 자체에 속성이 정의되는지 결정하는 데 사용됩니다.
obj.hasownproperty (prop)
매개 변수 소품
감지 할 속성 문자열 이름 또는 기호 (ES6)
o = new Object (); o.prop = 'Exists'; O.HasOwnProperty ( 'prop'); // return trueo.hasownproperty ( 'tostring'); // return falseo.hasownProperty ( 'hasownProperty'); // false를 반환합니다
hasownproperty를 객체의 속성 이름으로 사용하십시오
JavaScript는 HasownProperty를 민감한 단어로 사용하지 않기 때문에 객체의 한 속성을 HasownProperty로 명명 할 가능성이 높으므로 더 이상 객체 프로토 타입의 HasownProperty 메소드를 사용할 수 없을 것입니다.
var foo = {hasownProperty : function () {return false; }, bar : '여기서 dragons'}; foo.hasownproperty ( 'bar'); // 항상 false를 반환합니다이 개체를 사용하지 않음 으로써이 문제를 해결하는 방법. 프로토 타입 체인에서 Real Hasownproperty 메소드를 사용해야합니다.
({}). hasownProperty.call (foo, 'bar'); // true // 또는 : object.prototype.hasownproperty.call (foo, 'bar'); // 진실참조 : https://developer.mozilla.org/zh-cn/docs/web/javascript/reference/global_objects/object/hasownproperty