Вы можете продолжать делать именно то, что делали, и не использовать class
.
Если вы используете class
, вы обычно не используете Object.create
.Варианты использования для Object.create
в основном не связаны с class
(обычно он используется в прямом прототипическом наследовании, а не с использованием функций конструктора).
Если вы хотите использовать class
, но не хотитеиспользуйте new
по некоторым причинам, вы можете использовать Reflect.construct
(вместо Object.create
):
class Contact {
constructor(name, tel, mail) {
this.name=name;
this.tel=tel;
this.mail=mail;
}
method1(){
//code
}
}
const c = Reflect.construct(Contact, ["name", "tel", "mail"]);
console.log(c.name);
Это можно использовать Object.create
с вашим class Contact
, например:
// NOT A GOOD IDEA, see below
const c = Object.create(Contact.prototype);
Это создаетобъект, использующий Contact.prototype
в качестве прототипа.Но он не вызывает конструктор, и вы не можете вызвать конструктор позже (Contact.call(c, "name", "tel", "email")
потерпит неудачу).И вы не могли быть уверены, что отказ от вызова конструктора не вызовет проблемы, поскольку код class
предполагает, что вызывается конструктор (и суперконструкторы, если таковые имеются).