微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐