我試圖讓構造函數中止對象構造,如果失敗了,例如它不能獲得一個畫布。如何從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