您的位置:首页 > 其它

08、ES6 函数扩展

2017-05-04 23:11 190 查看
1、默认参数
:1.多余的参数:  ...自定义名字 (注意: ...之后不能再接收)

                         2. 默认参数
如果传值 就用传的值


   function fn(a,b,...c){

       console.log(a,b);

       console.log(c.length);// 如果直接写c数组

       console.log(...c); // 直接输出多余

   }

   fn(1,2,3,4,5,6);

   console.log('=======================');

   function fun(a,b = 2){

       console.log(a,b);

   }

  /*等同于

   function fun(a,b){

b = b||123;
       console.log(a,b);
   }*/

   fun(1,3)

运行结果:



2、箭头函数
  (一般情况下是回调使用箭头函数,自带return功能)


//箭头函数和真函数对比

    let fn = function () {

    };

    let fn1 = () => {

    };

如果只有1行代码 省略 大括号

let fn1 = (a,...b) => console.log(b);

只有1个参数的时候可以省略小括号

let fn1 = a => console.log(a);

// 和真正函数的区别

1.箭头函数不能 new  否侧会报错

2.箭头函数不存在 arguments //但是es6默认参数的扩展依然可以使用

let fn1 = (a,...b) => console.log(b);

    fn1(6,7,8,9,10);

运行结果:






3.this指向永远是指向定义时其父亲所在的对象  

    let obj1 = {

        name:'这里是obj1',

        a:function (){

            setTimeout(() => {

                console.log(this);

        })

        }

    };

    let obj2 = {

        name:'这里是obj2',

        a:function (){

            setTimeout(function (){

                console.log(this);

            })

        }

    };

    obj1.a();

    obj2.a();

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: