[OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=)
[OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=>)
https://www.liaoxuefeng.com/wiki/1022910821149312/1031549578462080
箭头函数
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。
为什么叫Arrow Function?因为它的定义用的就是一个箭头:
x => x * x
上面的箭头函数相当于:
function (x) {return x * x; }
箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ ... }
和return
都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ ... }
和return
:
x => {if (x > 0) {return x * x;}else {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; }
如果要返回一个对象,就要注意,如果是单表达式,这么写的话会报错:
// SyntaxError: x => { foo: x }
因为和函数体的{ ... }
有语法冲突,所以要改为:
// ok: x => ({ foo: x })
this
箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this
是词法作用域,由上下文确定。
回顾前面的例子,由于JavaScript函数对this
绑定的错误处理,下面的例子无法得到预期结果:
var obj = {birth: 1990,getAge: function () {var b = this.birth; // 1990var 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; // 1990var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象return fn();} }; obj.getAge(); // 25
如果使用箭头函数,以前的那种hack写法:
var that = this;
就不再需要了。
由于this
在箭头函数中已经按照词法作用域绑定了,所以,用call()
或者apply()
调用箭头函数时,无法对this
进行绑定,即传入的第一个参数被忽略:
var obj = {birth: 1990,getAge: function (year) {var b = this.birth; // 1990var fn = (y) => y - this.birth; // this.birth仍是1990return fn.call({birth:2000}, year);} }; obj.getAge(2015); // 25
[OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=)相关推荐
- [OHIF-Viewers]医疗数字阅片-医学影像-es6解构赋值-const{}=-let{}=
[OHIF-Viewers]医疗数字阅片-医学影像-es6解构赋值-const{}=-let{}= 解构赋值语法是一种 Javascript 表达式.通过解构赋值, 可以将属性/值从对象/数组中取出, ...
- [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处?...
[OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处? 这个好多人都已经写过了,这里插播一下,在OHIF- ...
- [OHIF-Viewers]医疗数字阅片-医学影像-事件总线管理器
[OHIF-Viewers]医疗数字阅片-医学影像-事件总线管理器 添加按钮>调用命令>注册回调函数 App.js import React, { Component } from 're ...
- [OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js提供了一个完整的基于Web的医学成像平台。...
[OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js提供了一个完整的基于Web的医学成像平台. 还必须写中文,不然不让同步,蛋疼呀--- ...
- [OHIF-Viewers]医疗数字阅片-医学影像-es6-Element.querySelector()
[OHIF-Viewers]医疗数字阅片-医学影像-es6-Element.querySelector() https://developer.mozilla.org/zh-CN/docs/Web/A ...
- [OHIF-Viewers]医疗数字阅片-医学影像-数字胶片直接下载,不再弹窗进行设置
[OHIF-Viewers]医疗数字阅片-医学影像-数字胶片直接下载,不再弹窗进行设置 直接下载解决方案 \Viewers\extensions\cornerstone\src\commandsMod ...
- [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法...
[OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法 将画布(canvas)图像保存成本地图片的方法 使用HT ...
- [OHIF-Viewers]医疗数字阅片-医学影像-使用 PropTypes 进行类型检查
[OHIF-Viewers]医疗数字阅片-医学影像-使用 PropTypes 进行类型检查 注意: 自 React v15.5 起,React.PropTypes 已移入另一个包中.请使用 prop- ...
- [OHIF-Viewers]医疗数字阅片-医学影像-REACT-Hook API索引
[OHIF-Viewers]医疗数字阅片-医学影像-REACT-Hook API索引 Hook 是 React 16.8 的新增特性.它可以让你在不编写 class 的情况下使用 state 以及其他 ...
最新文章
- 测试使用skywalking_SkyWalking 搭建及简单使用、入门(Linux)
- 【Android 事件分发】ItemTouchHelper 实现侧滑删除
- PendingIntent与Intent的区别
- 什么时候用到联合索引
- mysql虚拟列(Generated Columns)及JSON字段类型的使用
- mysql小王 保密_利用mysql的注射点得到更多mysql的信息
- 软件设计师c语言算法皇后,软件设计师历年试题-算法.ppt
- 企业信息化建设过程中,交通物流行业如何凭借数据成功转型?
- 信息学奥赛一本通C++语言——1023:Hello,World!的大小
- MySQL 主从复制 复制过滤
- linux非root用户关机,在Linux中普通用户图形界面登录以后为什么可以关机或者重启机器...
- java 写文件缓存_使用java NIO及高速缓冲区写入文件过程解析
- Unity3D使用透明视频,解决Pr导出WebM毛边问题
- 数据库防火墙应具备哪些能力
- 电脑双屏有一个黑屏_电脑显示器 黑屏(只应对其中一个原因的方案)
- 数据挖掘:Apriori 关联规则分析算法原理分析与代码实现
- oracle gc buffur,【性能調優】Oracle AWR報告指標全解析
- Kafka不丢失数据与不重复消费数据
- SQL2005安装(Server 2003)
- HTML5交互性是什么意思,HTML5的结构和语义(5):交互