function f(phrase) {
return class {
sayHi() { console.log(phrase) }
}
}
class User extends f("Привет") {}
new User().sayHi();
function f(phrase) {
return class {
sayHi() { alert(phrase) }
}
}
class User extends f("Привет");
new User().sayHi();
extends
является частью определения класса.
ClassDeclaration[Yield, Await, Default]: class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
где ClassTail имеет следующую структуру
ClassTail[Yield, Await]: ClassHeritage[?Yield, ?Await]opt { ClassBody[?Yield, ?Await]opt }
Отсюда видно, что обязательно указывать тело класса, как минимум пустым блоком.
При этом extend
указан в ClassHeritage
ClassHeritage[Yield, Await]: extends LeftHandSideExpression[?Yield, ?Await]
Если применить к примеру в вопросе
class User extends f("Привет") {}
ClassHeritage - extends f("Привет")
и далее должно следовать тело класса.
Так как во втором случае тела нет появляется ошибка.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть примерно такая структураКак можно сделать,чтобы выбор option прописывался в input? Допустим,стоит инпут,возле него селект,допустим,пользователь...
Есть поле input в которое водиться число