1、箭头函数不能作为构造函数,不能使用new function Fn(name){ this.name = name; this.age = 18; console.log("Fn中的this==>",this); //new Fn() } let fn = new Fn("哈哈"); //箭头函数 let Fn = ()=>{ this.name = name; this.age = 18; } let fn = new Fn(); //报错:Fn is not a constructor 2、箭头函数的this,始终指向父级上下文 let obj = { a: 100, fn: function(){ console.log(this);//obj }, fn2: ()=>{ console.log("fn2====>",this);//window } }; obj.fn(); obj.fn2(); 3、箭头函数不能通过call apply bind改变this指向,但是可以通过这些方法传递参数 let obj = { name: "obj", birth: 1990, year: 2021, age: (arg1, arg2)=>{ console.log(this);//window console.log(arg1, arg2);//obj2 console.log("my age =", this.year - this.birth) } } let obj2 = { name: "obj2", birth: 2000, year: 2020, }; obj.age.call(obj2,"参数1","参数2") 4、箭头函数没有arguments属性,可以用...展开运算符来接受所有的参数集合 let fn = (...args)=>{ // console.log(arguments);// arguments is not defined console.log(args); } fn(1,2,3)