javascript知识点1---函数

一:理解函数参数

    javascript函数参数在函数内部是已数组的形式来表示的,因此不关心是什么类型的参数和有多少个参数,只关心这个数组。这个数组使用arguments对象表示,在函数内部通过方括号形式可以arguments对象来形成参数的访问,例如arguments[0],表示第一个参数,argunments.length得到参数的个数。

   所有参数传递的都是值,不可能通过引用传递。

二:没有重载

    javascript没有函数重载,因此如果定义了两个函数名相同的函数,后面的就会覆盖前面的那个函数,这点与java不同,在java中,只要函数签名不同,参数的类型和个数不同,即使函数名相同,这些函数也都会被定义,因此就实现了函数的重载。   

三:具体说明

      函数创建方法:第一,函数声明function,第二,函数表达式。两种的区别:函数声明会有函数声明提前功能,因此可以在函数定义之前进行函数的调用,而表达式不会。

    1)作为值的函数,作为另一个函数的参数

      function func1(func2,argu2),该函数的参数argu2将作为函数func2的参数。

    2)函数作为另一个函数的返回值

      function createComparisionFunction(propertyName){

        return function(obj1,obj2){

          var value1 = obj1[propertyName];

          var value2 = obj2[propertyName];

          if(value1 < value2){

          return -1;

        }

          else if(value1 == value2){return 0;}

          else{return 1;}

 

    }

} 

     3) 函数内部属性

      在函数内部有两个特殊的对象,一个是arguments对象,一个是this对象。

      arguments对象用于保存函数的命名参数,有个属性callee,arguments.callee,是个指针,指向拥有arguments对象的函数。

      this对象是函数执行环境,全局函数,this值是windows对象。

      另一个函数对象属性是caller,caller属性保存中调用当前函数的函数的引用。

     4)函数属性和方法

      函数属性:length和prototype。length是指函数命名参数的个数,prototype(原型)保存着函数实例方法的真正所在。

      函数方法:apple()和call()方法,这两个方法的作用是在特定的作用域中调用函数,也就是修改this的值,扩充函数作用域。这两个方法都有两个参数,第一个参数是要运行函数的作用域,this的值,第二个参数都是要指定函数的参数,但是有所不同,apply方法是需要参数数组,call方法需要参数项,将参数一个个加进去。 

      函数的另一个方式是bind(对象)方法,该方法作用是创建函数实例,函数的this值会被绑定到bind的参数值上。

  

  

posted @ 2018-03-12 11:19  LittleGirl_MyBaby  阅读(183)  评论(0编辑  收藏  举报