In JavaScript un costruttore è solo una funzione ordinaria. Qualsiasi funzione che può essere chiamata come costruttore con ' new
' può essere chiamata come una funzione ordinaria. Ma le funzioni saranno quasi sempre scritte come una funzione di costruzione o non di costruzione, e l'utilizzo nell'altro modo è un errore.
Gli oggetti built-in tuttavia sono progettati in modo specifico in modo da poterli usare in entrambi i modi (come costruttore e come funzioni ordinarie) con due risultati diversi. Ad esempio new Date(1)
crea un nuovo oggetto Date (come ci si aspetterebbe da un costruttore) mentre Date(1)
restituisce una rappresentazione stringa della data corrispondente, che è forse più sorprendente.