Hay un viejo truco (that I learned on SO) para llamar a un constructor como una función, es decir, olvidando la palabra clave new
. Lo siguiente, o algo así, va en cada constructor en la parte superior.Alternativas de modo estricto a esta instancia de arguments.callee
if (!(this instanceof arguments.callee)) {
throw Error("Constructor called as a function");
}
¿Cuáles son las alternativas cuando necesita "use strict";
?
¿Se puede conservar su naturaleza genérica? ¿O tenemos que usar el nombre del constructor en lugar de arguments.callee
?