return 是返回值
如r=banana(3)
return k*k后r就等于9
return null后r就等于null
arguments 属性
为当前执行的 function 对象返回一个arguments 对象。function.argumentsfunction 参数是当前执行函数的名称,可以省略。 说明
通过 arguments 属性,函数可以处理可变数量的参数。 arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。示例
下面的例子说明了 arguments 属性的用法:function ArgTest(){
   var i, s, numargs = arguments.length;
   s = numargs;  
   if (numargs < 2)
      s += " argument was passed to ArgTest. It was ";
   else
      s += " arguments were passed to ArgTest. They were " ;
   for (i = 0; i < numargs; i++)
      {
         s += arguments[i] + " ";
      }
   return(s);
}
要求
版本 2
caller 属性
返回一个对函数的引用,该函数调用了当前函数。functionName.caller functionName 对象是所执行函数的名称。说明
对于函数来说,caller 属性只有在函数执行时才有定义。 如果函数是由 JScript 程序的顶层调用的,那么 caller 包含的就是 null 。如果在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本。下面的例子说明了 caller 属性的用法:function CallLevel(){
   if (CallLevel.caller == null)
      return("CallLevel was called from the top level.");
   else
      return("CallLevel was called by another function.");
}
要求
版本2callee 属性
返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。[function.]arguments.callee可选项 function 参数是当前正在执行的 Function 对象的名称。 说明
callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。callee 属性的初始值就是正被执行的 Function 对象。这允许匿名的递归函数。示例
function factorial(n){
  if (n <= 0)
  return 1;
  else
    return n * arguments.callee(n - 1)
}
print(factorial(3));
要求
版本 5.5