JS学习-箭头函数
2017-08-09 11:19
225 查看
ES6标准新增了一种新的函数:Arrow Function(箭头函数)
类似于Swfit中的闭包形式
如果参数不止一个:
回顾前面的例子,由于JavaScript函数对this绑定的错误处理,下面的例子无法得到预期结果
现在,箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj:
类似于Swfit中的闭包形式
x => x * x; //等价于 function (x) { return x * x; }
如果参数不止一个:
// 两个参数: (x, y) => x * x + y * y // 无参数: () => 3.14 // 可变参数: (x, y, ...rest) => { var i, sum = x + y; for (i=0; i<rest.length; i++) { sum += rest[i]; } return sum; }
this
箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。回顾前面的例子,由于JavaScript函数对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(); } };
现在,箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj:
var obj = { birth: 1990, getAge: function () { var b = this.birth; // 1990 var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象 return fn(); } }; obj.getAge(); // 25
相关文章推荐
- 【 js 基础 】【 源码学习 】柯里化和箭头函数
- js学习-函数
- JS学习 函数的理解
- JS函数的学习2
- js学习记录2--匿名函数,函数参数
- Ferris教程学习笔记:js示例2.10 函数传参,改变Div任意属性的值
- 学习js即时执行函数中的this关键字详解
- 从两个函数来学习js闭包的概念
- 我的JS学习笔记-----函数
- es6中箭头函数学习的一个记录
- JS学习笔记3_函数表达式
- js回调,apply,call 函数学习
- js学习笔记-函数表达式
- JS学习之路(二)---函数
- JS 中的箭头函数 心得
- JS学习之函数的属性和方法
- JS基础学习之 -- 函数
- js学习中,写的一些小函数
- js函数prototype属性学习(二)
- js学习——函数