Да. Object.getOwnPropertyDescriptor
метод противоположен defineProperty
:
const obj={
property:'value',
get accessor(){return 'value'},
set accessor(value){}
}
console.log(Object.getOwnPropertyDescriptor(object,'property'))
/*
{
enumerable:true,
writable:true,
configurable:true,
value:"value"
}
*/
console.log(Object.getOwnPropertyDescriptor(object,'accessor'))
/*
{
enumerable:true,
writable:true,
configurable:true,
get:function(...){...},
set:function(...){...}
}
*/
Используя это, вы можете реализовать функцию, которая определяет, что для вас:
const isAccessor=(object,property)=>!('value' in Object.getOwnPropertyDescriptor(object,property))