Не спорю и не критикую учебные подходы. Просто делюсь своей болью: как тавтология в примерах наследования (this.name = name) вгоняла в ступор на старте.

сбитый с толку pre-junior
сбитый с толку pre-junior

Сейчас, когда я работаю с наследованием и понимаю контекст this, мне очевидно?, зачем в примере используется this.name = name. Но на старте моего пути это было одной из тех вещей, которые сбивали с толку?.

Когда видишь подобный пример:

function Person(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
}

Кажется, что это просто «одно и то же имя равно самому себе». Ты пишешь код, но не до конца понимаешь, чем this.name отличается от name, и зачем здесь нужно this.

Понимание приходит со временем, но на первых порах это превращается в простое следование примеру. В голове остаётся ощущение магии?: «Я пишу то же самое, но почему это работает?» И только позже осознаёшь разницу между параметрами функции и свойствами объекта.

Я поддерживаю подход, когда сложные вещи объясняют через простые и жизненные примеры. Это работает. Люди, животные, профессии — прекрасные темы для демонстрации. Но тавтология переменных вроде this.age = age мне добавляла путаницы, чем помогала разобраться?.


Давайте обсудим? У кого так же было? Или может было что-то иное?

Комментарии (38)


  1. nikolayshabalin
    17.12.2024 14:38

    В старые времена мы делали var that = this. Нам уже ничего не страшно


    1. By_kosha Автор
      17.12.2024 14:38

      Каждому времени свои this-испытания :D


      1. 0whitewolf0
        17.12.2024 14:38

        this is javascript baby))


    1. isumix
      17.12.2024 14:38

      Лучше название self