@Dim1urg3r

Как написать конструктор ES5, используя запись функций ES6?

Конструктор в es5 выглядит так:
Function Someobj(p1, p2) {
this.p1 = p1;
this.p2 = p2;
}
Если записать, используя запись функций ES6:
const Someobj = (p1, p2) => {
this.p1 = p1;
this.p2 = p2;
}, то он не будет являться конструктором?
Почему const newobj = new Someobj(param1, param2) выдаёт ошибку во втором случае?
  • Вопрос задан
  • 471 просмотр
Пригласить эксперта
Ответы на вопрос 2
В es6 конструктор выглядит так:
class SomeClass {
    constructor(param1, param2) {
        this.param1 = param1;
        this.param2 = param2;
    }
}
Ответ написан
Комментировать
@skuvaWeb
Вообще функция конструктор ничем не отличается от обычной. Вся разница в вызове и ключевом слове new.
Когда вы вызываете функцию с ключевым словом new, создается новый почти пустой объект, в котором вызывается ваша функция, и this указывает на новосозданный объект, в который записываются свойства. У стрелочной функции this != этому новому объекту
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект