检索继承的非枚举属性
在 JavaScript 中,访问对象属性依赖于针对特定要求定制的各种方法。然而,当涉及到获取不可枚举、非自己的属性时,没有简单的机制。
为了解决这个问题,可以使用一个自定义函数,结合 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]));
在此示例中,[1, 2, 3] 是继承属性,函数成功检索它,但没有继承其枚举状态。这种方法使开发人员能够访问不可枚举的继承属性,这对于涉及原型和对象继承的某些场景至关重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3