>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 열거할 수 없는 상속 속성을 검색하는 방법은 무엇입니까?

JavaScript에서 열거할 수 없는 상속 속성을 검색하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-10 20:20:03757검색

How to Retrieve Non-Enumerable Inherited Properties in JavaScript?

열거 불가능한 상속 속성 검색

열거 불가능한 상속 속성의 존재를 확인하는 것은 JavaScript에서 매우 중요합니다. Object.keys() 및 Object.getOwnPropertyNames()와 같은 메소드는 객체 속성에 대한 액세스를 제공하지만 열거할 수 없는 상속된 속성은 제외합니다.

이 격차를 해소하기 위해 다음에서 Object.getOwnPropertyNames() 메소드를 활용할 수 있습니다. 프로토타입 체인 탐색과 결합됩니다. 이 접근 방식을 사용하면 상속 계층 구조의 모든 수준에서 열거할 수 없는 속성을 식별할 수 있습니다.

다음은 이 기술을 보여주는 함수입니다.

function getAllProperties(obj) {
    var allProps = []
      , curr = obj;
    do {
        var props = Object.getOwnPropertyNames(curr);
        props.forEach(function(prop) {
            if (allProps.indexOf(prop) === -1)
                allProps.push(prop);
        });
    } while (curr = Object.getPrototypeOf(curr));
    return allProps;
}

console.log(getAllProperties([1,2,3]));

Object.getOwnPropertyNames()를 프로토타입과 결합하여 체인 순회를 통해 이제 객체에서 상속된 속성을 포함하여 객체의 열거 가능한 속성과 열거 불가능한 속성의 전체 목록을 검색할 수 있습니다. 상위 프로토타입. 이 접근 방식은 가시성이나 소유권 상태에 관계없이 모든 자산에 대한 포괄적인 보기를 제공합니다.

위 내용은 JavaScript에서 열거할 수 없는 상속 속성을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.