箭头函数 为什么: 让this始终指向包含它的对象 是什么: 箭头左边是参数,右边是函数体 只包含一个表达式,连{ ... }和return都省略掉了。 还有一种可以包含多条语句,这时候就不能省略{ ... }和return: var fn = x => x * x; x => { if (x > 0) { return x * x; } else { return - x * x; } } this 箭头函数看上去是匿名函数的一种简写, 但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。 this默认指向全局变量或undefined(strict模式下的报错),只有对象调用时,才让this指向对象 var obj = { birth: 1990, getAge: function () { var b = this.birth; // 1990 var fn = function () { return new Date().getFullYear() - this.birth; // this指向window或undefined }; return fn(); } }; var obj = { birth: 1990, getAge: function () { var b = this.birth; // 1990 var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象 return fn(); } };