Ich bin neu in Javascript und muss eine Änderung an diesem einen Skript vornehmen. Ich habe diese Codezeile bemerkt, die mich jedoch gründlich verwirrt hat.Wird diese Aussage jemals als wahr gewertet?
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());
}
}
Während der Laufzeit, wenn ich an dieser dritten if
Anweisung einen Haltepunkt setzen und prüfe FIValidateForm.arguments
kann ich ein Array mit 3 Einzelteilen sehen. Die erste enthält eine string
, die zweite ist null
, und die dritte ist undefined
. Das Array hat immer noch eine Länge von 3
korrigiere ich bin in der Annahme, dass, egal was man zu dieser Methode zu übergeben wurden, wird FIValidateForm.arguments.length == 1
immer false
sein? Oder gibt es einen anderen Wert, den ich nicht kenne/alternative Methode, diese Methode aufzurufen, so dass arguments.length
gleich 1 wäre?
Edit: Ich sehe JS hat eine arguments.length
und eine Function.length
. Letzterer liefert die erwartete Anzahl der Parameter ... Also, wie nennt man dann eine Methode, so dass der Wert 1 wäre, wenn die Funktion mit 3 definiert ist?
Versuchen Sie, die Funktion nur mit dem ersten Argument aufzurufen und sehen Sie, was passiert. –