Извлечение унаследованных неперечислимых свойств
В 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