1. 箭头函数没有this,this是从外部获取的
1 2 3 4 5 6 7 8 9 10 11 12
| let group = { title: "Our Group", students: ["John", "Pete", "Alice"],
showList() { this.students.forEach( student => alert(this.title + ': ' + student) ); } };
group.showList();
|
2. 箭头函数不能对箭头函数进行 new
操作
不具有 this
自然也就意味着另一个限制:箭头函数不能用作构造器(constructor)。不能用 new
调用它们。
1 2
| var Foo = () => {}; var foo = new Foo();
|
3. 箭头函数没有arguments
箭头函数没有自己的 arguments 对象,但是箭头函数可以访问外围函数的 arguments 对象:
1 2 3 4 5 6
| function constant() { return () => arguments[0] }
var result = constant(1); console.log(result());
|
4. 箭头函数没有原型和super
连原型都没有,自然也不能通过 super 来访问原型的属性,所以箭头函数也是没有 super 的,不过跟 this、arguments、new.target 一样,这些值由外围最近一层非箭头函数决定。
1 2
| var Foo = () => {}; console.log(Foo.prototype);
|