Оператор new в JavaScript используется для создания новых объектов на основе конструктора функции или класса. Когда мы используем оператор new, JavaScript создает новый пустой объект и связывает его с прототипом функции или класса. Затем вызывается конструктор функции или класса, и this внутри конструктора ссылается на только что созданный объект. В конце конструктор возвращает этот объект, который затем можно использовать для вызова его методов или чтения свойств.

Например, мы можем создать класс Person с конструктором, который принимает имя и возраст и сохраняет их как свойства объекта:

class Person {
  constructor(name, age) {
    this.name = name
    this.age = age
  }
}
 
const person1 = new Person("Alice", 25)
console.log(person1.name) // 'Alice'
console.log(person1.age) // 25

В этом примере мы создаем класс Person с конструктором, который принимает имя и возраст и сохраняет их как свойства объекта, используя this. Затем мы создаем объект person1, используя оператор new и передавая аргументы конструктору. В результате person1 будет содержать свойства name и age, установленные в переданные значения.

Внутри конструктора this ссылается на только что созданный объект. В нашем примере, this.name и this.age устанавливаются для объекта person1, который затем возвращается из конструктора.

Важно понимать, что this внутри класса ссылается на экземпляр объекта, созданный оператором new. Поэтому, если мы попытаемся обратиться к this вне контекста класса (например, в обычной функции), то это приведет к ошибке, потому что this не будет ссылаться на объект, а будет зависеть от контекста вызова функции.


Назад