Как написать конструктор 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) выдаёт ошибку во втором случае?
Вообще функция конструктор ничем не отличается от обычной. Вся разница в вызове и ключевом слове new.
Когда вы вызываете функцию с ключевым словом new, создается новый почти пустой объект, в котором вызывается ваша функция, и this указывает на новосозданный объект, в который записываются свойства. У стрелочной функции this != этому новому объекту