TGViewer
Deep Digital Deep Digital @deepdigital · 1.06K subscribers
Post #276 539
Привет, друзья!

В пятницу мы писали про то, что классы — это не «синтаксический сахар» для функций-конструкторов и назвали первую причину, почему это так.

⚫Сегодня разбираем вторую причину.

Методы класса не являются его свойствами, а значит, не могут быть использованы как ключи в цикле for-in.

function UserFn(name, age) {
this.name = name;
this.age = age;

return {
name,
age,
greet() {
console.log('Hi!');
},
};
}

class UserClass {
constructor(name, age) {
this.name = name;
this.age = age;
}

greet() {
console.log('Hi!');
}
}

const UserFromFunction = new UserFn('John', 25);

const UserFromClass = new UserClass('John', 25);

for (const key in UserFromFunction) {
console.log(key); // name, age, greet
}

for (const key in UserFromClass) {
console.log(key); // name, age
}

Также мы можем это проверить с помощью метода Object.getOwnPropertyDescriptor, который возвращает информацию обо всех дескрипторах свойства объекта. У метода класса их нет, а это доказывает, что метод класса технически не является его свойством.

console.log(Object.getOwnPropertyDescriptor(UserFromFunction, 'greet')) // Объект с дескрипторами
console.log(Object.getOwnPropertyDescriptor(UserFromClass, 'greet')) // undefined

Это особенно полезно в тех случаях, когда вам нужно циклом перебрать свойства объекта, и вы не хотите включать его методы в итерации цикла.

Осталось разобрать последнюю особенность классов — следите за постами в канале 🕓.

@chulakov_dev
  • 🔥 26
  • 👍 7
  • ⚡ 1
  • ❤ 1
More from @deepdigital
  1. May 19, 2026Как расти в непростом рынке, масштабировать группу компаний и не терять фокус на клиентах?…
  2. Dec 26, 2025⚡️Подвели итоги 2025 года Chulakov Group Записали подкаст с Олегом Чулаковым — основателем…
  3. Dec 8, 2025Победы на Tagline Awards 2025 🏆 Снова громко напомнили, зачем делаем дизайн — чтобы созда…
  4. Jun 9, 2025Chulakov ⨉ ИТМО 💥 Мы снова в одном из крупнейших IT-вузов России. Альберт Рыбалко, руково…
  5. Jun 6, 2025🏆 Chulakov — № 1 в дизайне по всем рейтингам Безоговорочный лидер по версии крупнейших ан…
  6. May 6, 2025🙌 Вспоминаем, как насыщенно провели время на IT-конференции Merge Были рады стать партнер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →