Estoy tratando de hacer que el constructor aborte la construcción del objeto si algo falla, por ejemplo, no puede obtener un control de un lienzo.¿Cómo devolver nulo desde un constructor llamado con nuevo en Javascript?
Veo que klass() siempre devuelve this
independientemente de cualquier retorno nulo o cualquier otro valor, ¿puedo solucionar esto para devolver nulo?
Ahora que lo pienso, una solución puede ser crear la nueva instancia dentro de klass() y devolver esa instancia o nulo, y no usar new
, ¿hay una mejor solución?
function klass(canvas_id) {
var canvas = document.getElementById(canvas_id);
if(! (canvas && canvas.getContext)) {
return null;
}
}
var instance = new klass('wrong_id');
console.log(instance, typeof instance);
Puede lanzar una excepción o puede establecer un estado en su objeto que pueda probarse – jfriend00