Próbuję zmusić konstruktora do przerwania konstrukcji obiektu, jeśli coś się nie powiedzie, na przykład nie może uzyskać uchwytu płótna.Jak zwrócić null z konstruktora o nazwie new w JavaScript?
Ale jak używam new
Widzę, że klass() zawsze zwraca this
niezależnie od jakiejkolwiek wartości zwracanej null lub jakiejkolwiek innej wartości, czy mogę obejść to, aby zwrócić zero?
Teraz myślę, że rozwiązaniem może być stworzenie nowej instancji wewnątrz klass() i zwrócenie tej instancji lub wartości zerowej, a nie użycie new
, czy istnieje lepsze rozwiązanie?
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);
Możesz rzucić wyjątek lub ustawić jakiś stan w obiekcie, który można przetestować – jfriend00