Оператор 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
не будет ссылаться на объект, а будет зависеть от контекста вызова функции.