Eu tenho a seguinte função
function Client(url,name){
this.name = name;
this.url = url;
}
Client.prototype.check = () => (...some logic);
const client = new Client(url, name)
Como posso adicionar uma condição de que a função não esteja sendo chamada sem new
palavra-chave
Você pode usar
new.target
a meta propriedade que retorna uma referência à função quenew
foi chamada.Quando o cliente é chamado sem
new
entãonew.target
éundefined
Documentos MDN
A melhor opção é reescrever como uma classe:
Se houver algum motivo para você não poder fazer isso, você pode usar
new.target
:se alguém tentar invocar o Cliente sem usar new, ocorrerá um erro. A
this instanceof
verificação do Cliente garante que a função seja chamada como construtor.Você pode adicionar condições.