Javascript/ES6箭头函数
Javascript/ES6箭头函数
文章目录
- Javascript/ES6箭头函数
- 一、箭头函数是什么?
- 二、箭头函数与普通函数的区别
- 三、箭头函数的使用
- 1.箭头函数是匿名函数,不能作为构造函数,不能使用new
- 2.箭头函数不能使用arguments、super
- 3.箭头函数中this 指向
- 四、总结
一、箭头函数是什么?
ES6 引入了一种新的语法来编写函数,它就是箭头函数,绝大数,箭头函数与函数表达式创建的函数对象行为是相同的。任何可以使用函数表达式的地方,也可以使用箭头函数。箭头函数是一种函数简写方式, 定义形式是:参数(…)后面跟着箭头 =>,然后是函数内容体。
二、箭头函数与普通函数的区别
箭头函数是“=>”,普通函数是“function”。箭头函数不能作为构造函数,不能使用new。箭头函数不绑定arguments,但普通函数可以。箭头函数中的this代表上层对象,普通函数中的this代表当前对象。
- 箭头函数比普通函数更加简洁
如果没有参数,就直接写一个空括号即可。
如果只有一个参数,可以省去参数的括号。
如果有多个参数,用逗号分割。
如果函数体的返回值只有一句,可以省略大括号。 - 箭头函数没有自己的this
箭头函数不会创建自己的this, 所以它没有自己的this,它只会在自己作用域的上一层继承this。所以箭头函数中this的指向在它在定义时已经确定了,之后不会改变。 - 箭头函数继承来的this指向永远不会改变
普通函数
// 普通函数
let PI = function() {return 3.14;
};
箭头函数
// 箭头函数
let PI = () => {return 3.14
}
三、箭头函数的使用
箭头函数有两种格式:
一种只包含一个表达式,没有{...}
和return
let PI = x => {return 10 * x} //多个参数时需要括号,例如(x, y,z)
一种包含多条语句, 这个时候 {...} ,return
就不能省略
//箭头函数var PI = () => 5;//等价于//普通函数var PI = function () {return 5;};//箭头函数var PI = (num1, num2) => num1 + num2;//等价于//普通函数var PI = function (num1, num2) {return num1 + num2;}
提示: 1.函数体内只包含一个表达式 { … }和return可以省略掉。函数体内包含多条表达式 { ...}和return不能省略掉。 2.如果要返回一个对象,如果是单表达式,会报错:x => { foo: x }。因为和函数体的{ ...}有语法冲突,要改为:x => ({ foo: x })
1.箭头函数是匿名函数,不能作为构造函数,不能使用new
代码如下(示例):
let PI = () => {console.log('3.14');
}let fc = new PI();
2.箭头函数不能使用arguments、super
代码如下(示例):
// 普通函数
let PI = function() {return arguments.length;
}
PI(1, 2, 3); // 3// 箭头函数
let PI = () => {return arguments.length;
}PI(1, 2,3); // Uncaught ReferenceError: arguments is not defined
3.箭头函数中this 指向
代码如下(示例):
let PI = 3.14;
const obj_1 = {PI: 10,fun_1: function() {let PI = 20;const obj_2 = {PI: 30,fun_2: () => {console.log(this.PI);}}obj_2.fun_2();}
}
obj_1.fun_1(); // 返回10
fun_2
返回的结果为:10
原因是箭头函数没有this,箭头函数的this指向是父级的this指向。如果没有父级或者父级没有指向,箭头函数的this指向是window ,这里箭头函数的执行上下文是函数fun_1(),所以它就继承了fun_1()的this,obj_1调用的fun_1,所以fun_1的this指向obj_1, 所以obj_1.PI 为 10。
四、总结
- 要有个箭头
- 箭头的前面是小括号,放形参,只有一个形参的时候可以省略小括号;
- 箭头的后面是函数体;
- 如果函数体只有一个语句,没有{},此时的返回值不需要return;
- 箭头函数里面的this总是指向最靠近的function 内部的this;
- 对象里面的方法,尽可能不要使用箭头函数;
- 箭头函数里面没有arguments,可以使用…reset,接收过来就是数组类型,接收的是形参之外的所有的实参;
Javascript/ES6箭头函数相关推荐
- JavaScript ES6箭头函数指南
前言 胖箭头函数(Fat arrow functions),又称箭头函数,是一个来自ECMAScript 2015(又称ES6)的全新特性.有传闻说,箭头函数的语法=>,是受到了CoffeeSc ...
- javascript es6 箭头函数 简介
基本用法 ES6 允许使用"箭头"(=>)定义函数. var f = v => v; 上面的箭头函数等同于: var f = function (v) {return ...
- 学习笔记 JavaScript ES6 箭头函数
学习内容: this指向定义时所在的对象,而不是调用时所在的对象 不可以当作构造函数 不可以使用arguments对象 1.this指向定义时所在的对象,而不是调用时所在的对象 先来回顾一下ES5当中 ...
- es6 箭头函数使用_如何使用ES6箭头功能使JavaScript易于阅读
es6 箭头函数使用 Arrow functions are the new fundamental building blocks of building modern web applicatio ...
- [OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=)
[OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=>) https://www.liaoxuefeng.com/wiki/1022910821149312/103154957 ...
- javascript的箭头函数
javascript的箭头函数 箭头函数的定义 箭头函数(Arrow Function):ES6标准中新增的函数,叫箭头函数的原因是因为它使用了 ' => ' 来进行标识 箭头函数的基础语法 通 ...
- ES6箭头函数中的this指向
1箭头函数中的this (1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this (2)箭头函数中的this指向 :访问上一个作用域的thi ...
- es6 箭头函数 rest参数 扩展运算符
Es6 箭头函数 语法: 普通函数: fn=function(){} 箭头函数: fn=()=>{} 特性: this是静态的,this始终指向函数声明时所在作用域下的this的值(使用call ...
- es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别
作者:長安曹公子 文章出处:ES6 - 箭头函数.箭头函数与普通函数的区别 一.基本语法 ES6中允许使用箭头=>来定义箭头函数,具体语法,我们来看一个简单的例子: // 箭头函数 let fu ...
最新文章
- 华为鸿蒙系统概念图,华为P50Pro概念图:没有麒麟芯片,鸿蒙系统和7镜头也可以很豪横...
- 深入浅出Rust Future - Part 1
- python发送给邮件 转
- 一些http 响应码及含义
- scala学习 之 环境搭建(一)
- 如何实现一个符合泊松分布的即时消息发生器?
- 云小课 | 详解华为云独享型负载均衡如何计费
- 华为交换机命令_华为交换机故障诊断命令display怎么用?
- vs2005部署报表服务器项目老提示输入用户名密码解决办法
- java2017下载_Download Java for OS X 2017-001
- 部门WIFI配置-防火墙-核心交换机和POE交换机
- linux服务之irqbalance
- dubbo服务调用为何先进入到mockClusterInvoker执行
- ubuntu 外置硬盘安装
- Vim激荡30年发展史
- python有道批量单词音标整理-Python 批量翻译 使用有道api;
- 我的孤独自学之路----kali 安装及更新源
- CentOS7 系统盘扩容
- R语言一般线性模型(涉及因变量是虚拟变量(哑变量))
- Ubuntu 16.04.3 LTS操作系统安全加固
热门文章
- 游戏资源差异化热更新及加密全攻略(Assetbundle 打包 AssetBundle 加载 AssetBundle 加密)
- requestPermissions读写手机存储权限_315保护隐私!手机这几个设置保护个人隐私
- 润乾报表实现竖排文字
- 苹果怎么换字体_oppo换苹果手机怎么把便签里的东西移过去?
- tableau显示正在将数据发送到服务器,BI软件之Tableau学习心得之三——常见问题总结...
- 清除三星SCX4200硒鼓上的计数器
- 联想k920 android7,联想K920和小米4哪个好
- 2016words---论文标题多级目录和图片清单
- [转载]Word通配字符
- vue中v-for 与 v-if 使用错误