Yesterday I thrilled you with the gory details of the arity property of JS functions, which is basically an argument count. Every function (even the ones you dream up) has an arity property, which you can inspect with code like that shown below. (This is the same code from yesterday.) The thing I forgot to mention yesterday is that every function also has an arguments array property, although frankly that should be obvious from looking at the code example. Here is that code again:
function SumOfAllArgs(){argCount = SumOfAllArgs.arity;var sum = 0;
for (i = 0 ; i < argCount; i++ ) sum += SumOfAllArgs.arguments[i];
app.alert('arity = ' + SumOfAllArgs.arity +', and return value is ' + sum);
return sum;}
The function was declared as having no arguments, and yet JavaScript doesn’t complain at
all if you pass it arguments, in any quantity you desire. Try it yourself! Put the
foregoing code inside a PDF form and call the function with a handful of numeric arguments.
See what pops up on the screen when app.alert() executes.
Yesterday I asked you to guess what happens if you pass an argument of ‘true’ in the
above function. The answer is, arity becomes 1 and the return value is 1. I also asked you
to think about what might happen if (in a fit of schizophrenia) you were to pass in an
argument value of ‘test()’ (without quotes) to the above function. Answer: It executes
twice. The first time is with a null argument, hence arity == 1 and return == 0; the 2nd
time, arity == 1 and return == 1.