JavaScript 箭头函数(Lambda表达式)
来源:互联网 发布:淘宝上警服叫什么 编辑:程序博客网 时间:2024/06/05 01:06
原文:http://blog.csdn.net/cuit/article/details/53200335
简介
JavaScript 中,函数可以用箭头语法(”=>”)定义,有时候也叫“lambda表达式”。这种语法主要意图是定义轻量级的内联回调函数。例如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
当箭头函数有一个参数时,参数两边的括号是可有可无的,但是还是有括号看起来看清楚。
- 1
- 2
- 1
- 2
箭头函数不带参数时,必须要用括号,比如:
- 1
- 1
如果函数体不是只一行,应该用花括号,并显式地返回(如果需要返回值)。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
arguments object
箭头函数不会暴露 argument 对象,所以,argument 将简单地指向当前scope内的一个变量。
arguments object 是所有函数中的一个本地变量。你可以通过 arguments 对象引用函数的入参。这个对象包含传给这个函数的每个入参的入口,索引从0开始,例如:
arguments[0]
arguments[1]
arguments[2]
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
基于此,箭头函数也不知道它的调用者。
当缺少arguments object时,可能会有所限制(极少数情况),其余的参数一般可以做为替代。
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
绑定this的值
箭头函数是 lexically scoped,这意味着其 this 绑定到了附近scope的上下文。也就是说,不管this指向什么,都可以用一个箭头函数保存。
看下面的例子, Cow 类有一个方法在1秒后输出sound。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
在 makeSoundLater() 方法中,this 指向当前 Cow 对象的实例。所以在这个例子中当我们调用 myCow.makeSoundLater(), this 指向 myCow。然后,通过使用箭头函数,我们保存了 this,这样我们就可以在需要时引用 this.sound 了。将会输出 “moo”,而不是yourCow.makeSoundLater()输出的“moooooo”。
隐式返回值
箭头函数可以通过省略掉小括号做到隐式返回值。
- 1
- 2
- 1
- 2
当使用隐式返回时,Object Literal 必须用花括号括起来。
Object Literal 是用花括号括起来的,分号隔开的 k-v 对象列表。
- 1
- 2
- 1
- 2
显示返回值
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
语法
- JavaScript 箭头函数(Lambda表达式)
- 匿名函数(Lambda表达式)与箭头函数
- 三元表达式、箭头函数
- javascript学习(十二)— 箭头函数
- JavaScript—箭头函数
- javascript---箭头函数
- Javascript 箭头函数
- Javascript 箭头函数
- JavaScript 箭头函数
- JavaScript 箭头函数
- 【JavaScript】箭头函数
- 函数式编程初步(lambda表达式)
- 匿名函数 & Lambda 表达式
- 021:函数:lambda表达式
- lambda函数表达式写法
- 匿名函数 - lambda表达式
- 匿名函数 lambda表达式
- 轻松学习 JavaScript(6):JavaScript 箭头函数
- 几个项目管理软件的比较
- Scrapy Item Loaders机制详解
- 单例模式
- eclipse中应知道的一些快捷操作方式
- retrofit+RecyclerView+SwipeRefreshLayout下拉刷新上拉加载+item点击
- JavaScript 箭头函数(Lambda表达式)
- iOS 代码关闭App
- 浅析javascript中的this关键字
- Using cordova-fetch for cordova-android@6.2.2长时间无响应的问题
- 页面自动加载bootstrap的模态框
- Apriori定律
- uva 1354 Mobile Computing code2
- UGUI的优点新UI系统四 开源
- 【Zookeeper】3.Zookeeper环境搭建1