我是Javascript新手,需要對此腳本進行更改。然而,我注意到這一行代碼讓我徹底困惑。此聲明是否會評估爲真?
function FIValidateForm(aForWhom, aDoNotShowWarning, aFromWhere)
{
try
{
PAIWarnings = '';
var pBlFalg = true;
if (pBlFalg)
pBlFalg = mfpCheckForFISave(aForWhom, aDoNotShowWarning, aFromWhere);
if (pBlFalg == true)
pBlFalg = PAIErrors();
if ((pBlFalg) && (FIValidateForm.arguments.length == 1))
mfpIFWarnings();
return pBlFalg;
}
catch (err)
{
logError(err, arguments.callee.trace());
}
}
在運行時,如果我把一個斷點上第三if
聲明和檢查FIValidateForm.arguments
我可以看到3個項目的數組。第一個包含string
,第二個包含null
,第三個包含undefined
。該陣列仍然有3的長度。
我是否正確的假設無論通過什麼樣的方法,FIValidateForm.arguments.length == 1
將永遠是false
?還是有一些其他值我不知道/另一種方法來調用這種方法,以便arguments.length
會等於1?
編輯:我看到JS有一個arguments.length
和Function.length
。後者返回預期的數量的參數...那麼,如何調用一個方法,以便在函數定義爲3時值爲1?
嘗試用第一個參數調用該函數,看看會發生什麼。 –