javasctipt面向对象编程中一切都是对象。函数也是对象。
定义一个函数
function Animal(name){
   this.name=name;
   this.age=0;
};

var a1=Animal;//等价于alert(a1);返回函数的定义内容
var a2=Animal();//alert(a2);输出undefine 因为Animal函数没有返回值
var a3=new Animal();//alert(a3);输出object 
var a4=new Animal;//alert(a4);输出object 等价于上一行

参数的可变性 (arguments)  
第一个函数,功能是求几个数字的和
function sum(){
    var s= 0;
    for(var i=0; i<arguments.length; i++)//javascript面向对象编程的特性,参数可通过arguments直接读取。
         s+=  arguments[i];
    return s;
}
//最多255个。通过函数对象的length可以返回函数希望提供的参数个数。 
//sum(1,2) 返回3;sum(1,2,3,4);返回10