我一直在使用相同的JavaScript庫我已經建立了多年,現在我遇到了這個函數錯誤:未定義JavaScript對象構造
IsArray : function()
{
if (typeof arguments[0] == 'object')
{
var criterion = arguments[0].constructor.toString().match(/array/i);
return (criterion != null);
}
return false;
}
有些時候,它被稱爲當以下錯誤被拋出:
TypeError: Cannot call method "toString" of undefined
我加定義標準變量來解決這個問題如下之前:
if (arguments[0].constructor == null || arguments[0].constructor == undefined)
return false;
但是,我想了解如何或爲什麼會發生這種情況。我不知道爲什麼一個具有'對象'類型的變量不會有構造函數。在這個問題之前我從未見過它。關於這一點我感到困擾的是,這一切都是在我更新另一個庫函數後開始的,這些函數檢查空值和空字符串以嘗試過濾空數組(將空數組與空字符串進行比較時,它會返回一個匹配項) 。
'null'是typeof對象的類型。 – Li357