箭头函数返回对象
// 这种情况要要用(),否则会将对象的{
}解释为块
const fn = (a, b) => ({
a:1, b:2})
箭头函数的特点
- this指向由外层函数的作用域来决定,它本身没有this,不能通过call、apply、bind改变
- 不能作为构造函数使用
- 不可以使用arguments对象,该对象在函数体内不存在,可用rest代替
- 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
function foo() {
console.log('this', this)
return (a) => {
console.log('a', this.a)
}
}
var obj1 = {
a: 2 };
var obj2 = {
a: 3 };
var bar = foo.call(obj1)
bar.call(obj2) // 2
- 所有的内层函数都是箭头函数,都没有自己的this,它们的this其实都是最外层foo函数的this。
function foo() {
return ()