ES6箭头函数

ES6箭头函数,用=>代替function作为简单写法

  let fn=function(a,b){
  		console.log(a+b);
   };
   fn(1,2);//3
   let fn1=(a,b)=>{
       console.log(a+b);
   };
   fn1(1,2);//3

箭头函数的注意点:
箭头函数 this 指向声明时所在作用域下 this 的值

		let fn4=()=>{
            console.log(this)
        }
        fn4();//window

        //1. this 是静态的. this 始终指向函数声明时所在作用域下的 this 的值
        function getName(){
            console.log(this.name);
        }
        let getName2 = () => {
            console.log(this.name);
        }

        //设置 window 对象的 name 属性
        window.name = '尚硅谷';
        const school = {
            name: "ATGUIGU"
        }

        //直接调用
        getName();//尚硅谷
        getName2();//尚硅谷

        //call 方法调用
        getName.call(school);//ATGUIGU
        getName2.call(school);//尚硅谷

其他注意点:
(1)如果形参只有一个,则小括号可以省略
(2) 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的
执行结果
(3) 箭头函数不能作为构造函数实例化

 //2. 不能作为构造实例化对象
        let Person = (name, age) => {
            this.name = name;
            this.age = age;
         }
        let me = new Person('xiao',30);
        console.log(me);//!!!!会报错
//正确写法:
let Person=function(name,age){
            this.name=name;
            this.age=age;
        }

(4) 不能使用 arguments

//3. 不能使用 arguments 变量
        let fn = () => {
            console.log(arguments);
        };
        //正确写法
        let fn=(...arguments)=>{
            console.log(arguments)
        };
        fn(1,2,3);
上一篇:ES6 之 Promise 对象


下一篇:ES6之函数