Как проверить, является ли свойство геттером в JavaScript: методы и примеры

Чтобы проверить, является ли свойство методом получения в JavaScript, вы можете использовать несколько методов. Вот несколько подходов:

  1. Использование метода Object.getOwnPropertyDescriptor():

    const obj = {
     get myProperty() {
       return 'value';
     }
    };
    const descriptor = Object.getOwnPropertyDescriptor(obj, 'myProperty');
    const isGetter = (descriptor && typeof descriptor.get === 'function');
    console.log(isGetter); // true
  2. Использование метода Object.prototype.hasOwnProperty():

    const obj = {
     get myProperty() {
       return 'value';
     }
    };
    const isGetter = obj.hasOwnProperty('myProperty') && typeof obj.__lookupGetter__('myProperty') === 'function';
    console.log(isGetter); // true
  3. Использование метода Object.prototype.propertyIsEnumerable():

    const obj = {
     get myProperty() {
       return 'value';
     }
    };
    const isGetter = Object.prototype.propertyIsEnumerable.call(obj, 'myProperty') && typeof obj.__lookupGetter__('myProperty') === 'function';
    console.log(isGetter); // true