js如何判斷一個對象{}是否為空對象,沒有任何屬性
前段時間用js寫瞭一個類似”angularjs”用於數據綁定的東西,功能是比較簡單瞭,
通常應該傳進來的是一個ArrayList JSON對象數組,
但有時候通過AJAX方法調用返回的是一個JSON對象,而不是數組!
為瞭兼容這種情況使用瞭以下代碼:
if (typeof model.rows === "object" && !(model.rows instanceof Array)){ model.rows = [model.rows]; }
這段代碼在後來使用過程中發現瞭一個Bug,就是當
model.rows = {};
時,依然把它當作一個有效的對象來處理,進行數據綁定,可想而知,所有數據都是空的。
解決方案:
那麼怎麼解決這個問題呢?
第一習慣首先是搜索一下,但得到的結果都是DOM相關的,差強人意!
這時想起之前寫過遍歷JS對象屬性的方法,這裡可以用上瞭!
代碼如下:
if (typeof model.rows === "object" && !(model.rows instanceof Array)){ var hasProp = false; for (var prop in model.rows){ hasProp = true; break; } if (hasProp){ model.rows = [model.rows]; }else{ throw "model.rows is empty object"; return false; } }
代碼很簡單,就不寫註釋瞭。