@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) выдаёт ошибку во втором случае?
  • Вопрос задан
  • 468 просмотров
Пригласить эксперта
Ответы на вопрос 2
В es6 конструктор выглядит так:
class SomeClass {
    constructor(param1, param2) {
        this.param1 = param1;
        this.param2 = param2;
    }
}
Ответ написан
Комментировать
@skuvaWeb
Вообще функция конструктор ничем не отличается от обычной. Вся разница в вызове и ключевом слове new.
Когда вы вызываете функцию с ключевым словом new, создается новый почти пустой объект, в котором вызывается ваша функция, и this указывает на новосозданный объект, в который записываются свойства. У стрелочной функции this != этому новому объекту
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы