[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箭头函数(=)相关推荐

  1. [OHIF-Viewers]医疗数字阅片-医学影像-es6解构赋值-const{}=-let{}=

    [OHIF-Viewers]医疗数字阅片-医学影像-es6解构赋值-const{}=-let{}= 解构赋值语法是一种 Javascript 表达式.通过解构赋值, 可以将属性/值从对象/数组中取出, ...

  2. [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处?...

    [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处? 这个好多人都已经写过了,这里插播一下,在OHIF- ...

  3. [OHIF-Viewers]医疗数字阅片-医学影像-事件总线管理器

    [OHIF-Viewers]医疗数字阅片-医学影像-事件总线管理器 添加按钮>调用命令>注册回调函数 App.js import React, { Component } from 're ...

  4. [OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js提供了一个完整的基于Web的医学成像平台。...

    [OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js提供了一个完整的基于Web的医学成像平台. 还必须写中文,不然不让同步,蛋疼呀--- ...

  5. [OHIF-Viewers]医疗数字阅片-医学影像-es6-Element.querySelector()

    [OHIF-Viewers]医疗数字阅片-医学影像-es6-Element.querySelector() https://developer.mozilla.org/zh-CN/docs/Web/A ...

  6. [OHIF-Viewers]医疗数字阅片-医学影像-数字胶片直接下载,不再弹窗进行设置

    [OHIF-Viewers]医疗数字阅片-医学影像-数字胶片直接下载,不再弹窗进行设置 直接下载解决方案 \Viewers\extensions\cornerstone\src\commandsMod ...

  7. [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法...

    [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法 将画布(canvas)图像保存成本地图片的方法 使用HT ...

  8. [OHIF-Viewers]医疗数字阅片-医学影像-使用 PropTypes 进行类型检查

    [OHIF-Viewers]医疗数字阅片-医学影像-使用 PropTypes 进行类型检查 注意: 自 React v15.5 起,React.PropTypes 已移入另一个包中.请使用 prop- ...

  9. [OHIF-Viewers]医疗数字阅片-医学影像-REACT-Hook API索引

    [OHIF-Viewers]医疗数字阅片-医学影像-REACT-Hook API索引 Hook 是 React 16.8 的新增特性.它可以让你在不编写 class 的情况下使用 state 以及其他 ...

最新文章

  1. 测试使用skywalking_SkyWalking 搭建及简单使用、入门(Linux)
  2. 【Android 事件分发】ItemTouchHelper 实现侧滑删除
  3. PendingIntent与Intent的区别
  4. 什么时候用到联合索引
  5. mysql虚拟列(Generated Columns)及JSON字段类型的使用
  6. mysql小王 保密_利用mysql的注射点得到更多mysql的信息
  7. 软件设计师c语言算法皇后,软件设计师历年试题-算法.ppt
  8. 企业信息化建设过程中,交通物流行业如何凭借数据成功转型?
  9. 信息学奥赛一本通C++语言——1023:Hello,World!的大小
  10. MySQL 主从复制 复制过滤
  11. linux非root用户关机,在Linux中普通用户图形界面登录以后为什么可以关机或者重启机器...
  12. java 写文件缓存_使用java NIO及高速缓冲区写入文件过程解析
  13. Unity3D使用透明视频,解决Pr导出WebM毛边问题
  14. 数据库防火墙应具备哪些能力
  15. 电脑双屏有一个黑屏_电脑显示器 黑屏(只应对其中一个原因的方案)
  16. 数据挖掘:Apriori 关联规则分析算法原理分析与代码实现
  17. oracle gc buffur,【性能調優】Oracle AWR報告指標全解析
  18. Kafka不丢失数据与不重复消费数据
  19. SQL2005安装(Server 2003)
  20. HTML5交互性是什么意思,HTML5的结构和语义(5):交互

热门文章

  1. 制作DeepLabV3Plus训练集
  2. 28379D第四章的ROM Code and Peripheral Booting
  3. JSP 手机销售管理系统 myeclipse开发web网页 mysql数据库
  4. 【阿里云】DCDN全站加速介绍及配置
  5. TLS协议分析 (九) 现代加密通信协议设计
  6. 海思方案技术研发交流群/海思方案供需交流群
  7. 递归算法详解——递归算法的三要素以及例题分析
  8. ILOG Gantt 3.0 注册机
  9. 目标跟踪常用算法——UKF篇
  10. 支付宝扫码支付示例源码