Что делает эта часть кода?

123
31 декабря 2020, 14:30

Есть такой код:

function User(name){
    this.name = name;
}
User.prototype.hello = function(who){
    console.log("Hello, " + who.name); };
var vasya = new User("Вася");  var petya = new User("Петя");
vasya.hello(petya); petya.hello(vasya);

У меня вопросы только по одной части кода: this.name = name;

  1. Что делает эта часть кода?
  2. Зачем ключевое слово this? Что оно делает?
  3. Я так понимаю "name" слева от равно это параметр функции, а справа тогда что?

P.S.Прошу ссылки не бросать на книги или сайты по this, я читал но не понял, хочу разобраться а не просто заучить определение.

Answer 1

this в функции при вызове с new работает как в конструкторе, то есть

function User(name){
    this.name = name;
}

эквивалентно

class User{
   constructor(name) {
       this.name = name;
   }
}
  1. В this.name = name мы присваиваем новому объекту как name параметр name.
  2. this - ключевое слово, по которому мы обращаемся к объекту из его метода или конструктора
  3. Справа у нас поле name от нового объекта
Answer 2

У меня вопросы только по одной части кода: this.name = name;

В данном случае значение переменной name присваивается свойству name объекта this.

READ ALSO
Порядок вызова функции js async

Порядок вызова функции js async

С прошлым примером все получилось, поэкспериментировал - вроде бы все работаетРешил применить в задаче

104
задача на сортировку строки

задача на сортировку строки

Нашел интересную задачку, но решение до конца не смог довестиНаписать функцию, которая на вход получает строку, которая содержит числа (пример:...

111
'hasOwnProperty' is not a function. Что не так?

'hasOwnProperty' is not a function. Что не так?

Пытаюсь выявить наличие определенного параметра в url:

103