在非對象上調用的錯誤Object.keys只能在將非對象放入它時發生。見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
return function(obj) {
if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
throw new TypeError('Object.keys called on non-object');
}
下面你測試的是employee_data的值時,它是空的。它應該適用於[]。
但是,如果您已撥打JSON.stringify就可以了,否則就無法工作,請參閱下文。
var emptyData = [];
if(typeof emptyData == 'object')
console.log(Object.keys(emptyData)); // it will print the keys,if there
var emptyData = [];
var emptyJSOn = JSON.stringify(emptyData);
if(typeof emptyJSOn == 'object')
console.log(emptyJson); // it won't print because ,it's not an object.
現在,我想你正試圖通過,emptyJson到Object.keys()方法,這就是爲什麼你收到此錯誤。
欲瞭解更多信息,你可以參考MDN文檔。
如何賦值給'employee_data'? – thefourtheye 2014-11-21 04:44:07
錯誤發生時未定義 – user781486 2014-11-21 04:54:58
那麼,你不能採取未定義的'Object.keys()'。它是如何被定義的?如何創建或分配'employee_data'?如果Web服務返回未定義的JSON,則可能意味着請求中存在某種錯誤,所以您顯然需要檢測該錯誤並執行所需的任何錯誤處理。 – 2014-11-21 05:54:28