我试图让构造函数中止对象构造,如果失败了,例如它不能获得一个画布。如何从Javascript中使用new调用的构造函数返回null?
但是,因为我使用new
我看到klass()总是返回this
,无论返回null或任何其他值,我可以解决此问题返回null吗?
现在我想到了,一种解决方案可能是在klass()内创建新实例并返回该实例或为空,而不是使用new
,有没有更好的解决方案?
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);
你可以抛出一个异常,或者你可以在你的对象中设置一些可以测试的状态 – jfriend00 2011-12-23 17:07:15