201506170744_《JavaScript权威指南(第六版)——函数调用变长实参和可选形参、》(P171-175)

一. 构造函数调用 (分有无return)

1. var obj = new Object();

   var obj = new Object;

这两行代码是等价的;表达式: new Obj.m();中,this指向的并不是Obj!!

构造函数通常不是用return关键字;

 

二. 间接调用

1.  call();和apply(); 作用:任何对象都可以调用任何方法/

     call();——使用它自有的实参作为函数的实参;

     apply();——以数组的形式传入实参;

 

2. 可选参数 : var  a = a || [];

3. 可变长的实参 : arguments是指向实参的引用;

    例如:

    function add(a,b,c) {

    if(arguments.length != 3) {

      throw new Error("参数实际传入的个数为: " + arguments.length +"个,但是函数定义的形参个数是3个!");

    }else{

      return a + b + c

  }

};

add(1,1,2,9);  //Error: 参数实际传入的个数为: 4个,但是函数定义的形参个数是3个!

3. function add(a,b,c) {if(arguments.length != 3) {throw new Error("参数实际传入的个数为: " + arguments.length +"个,但是函数定义的形参个数是3个!");}else{arguments[0] = null;return a + b + c}}; add(9,1,2);  //结果为 :3。 "9"被置为"null"值;

4. arguments在严格模式下它不能被赋值,不能作为形参名,被作为了保留字。

5. 

 

posted @ 2015-06-17 08:54  Coca-code  阅读(197)  评论(0编辑  收藏  举报