javascript es6 箭头函数
1、箭头函数示例
let add = (a,b) => a + b //没有语句块时,默认作为返回值
add(1,2);
var multi = (a,b) => {return a * b;} //在语句块中返回值
multi(1,2);
2、如果箭头表达式仅仅是简化函数的命名,为什么要改变原来习惯而去使用?
箭头函数内部没有constructor方法,也没有prototype,所以不支持new操作。但是它对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。
3、箭头对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。实例验证
/*this会发生改变*/
function es6() {
var obj = {
x: 1,
func: function () {
console.log(this.x);
}
test: function () {
setTimeout(function () {
alert(this); //指针转移:setTimeout由js调用所以this window对象
this.func(); //报错:func没定义
}, 1000);
}
}
} /*改为箭头函数,避免this发生变化,让this始终指向函数定义*/
function upgradeEs6() {
var obj = {
x: 1,
func: function () {
console.log(this.x);
}
test: function () {
setTimeout(() => {
alert(this);
this.func();
}, 1000);
}
}
}
javascript es6 箭头函数的更多相关文章
- JavaScript ES6箭头函数指南
前言 胖箭头函数(Fat arrow functions),又称箭头函数,是一个来自ECMAScript 2015(又称ES6)的全新特性.有传闻说,箭头函数的语法=>,是受到了CoffeeSc ...
- ES6 — 箭头函数
一 为什么要有箭头函数 我们在日常开发中,可能会需要写类似下面的代码 const Person = { 'name': 'little bear', 'age': 18, 'sayHello': fu ...
- 前端分享----JS异步编程+ES6箭头函数
前端分享----JS异步编程+ES6箭头函数 ##概述Javascript语言的执行环境是"单线程"(single thread).所谓"单线程",就是指一次只 ...
- ES6 箭头函数 this 指向
ES6 箭头函数 this 指向 箭头函数有几个使用注意点: 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象. 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个 ...
- 02、Java的lambda表达式和JavaScript的箭头函数
前言 在JDK8和ES6的语言发展中,在Java的lambda表达式和JavaScript的箭头函数这两者有着千丝万缕的联系:本次试图通过这篇文章弄懂上面的两个"语法糖". 简介 ...
- this(ES6箭头函数里的this)
一,了解前须知 1,箭头函数:出现的作用除了让函数的书写变得很简洁,可读性很好外:最大的优点是解决了this执行环境所造成的一些问题.比如:解决了匿名函数this指向的问题(匿名函数的执行环境具有全局 ...
- ES6 箭头函数及this
ES6 箭头函数及this 1.箭头函数 <script type="text/javascript"> //以前定义函数 let fun=function () { ...
- es6箭头函数讲解
es6箭头函数的用法 箭头函数是es6的一种函数的简写方法. 如下: var f = v = > v; //等同于 var f = function(v){ return v; } var su ...
- es6箭头函数 this 指向问题
es5中 this 的指向 var factory = function(){ this.a = 'a'; this.b = 'b'; this.c = { a:'a+', b:function(){ ...
随机推荐
- Anchor 的两种编程实现
aspect ratios:高宽比率 假设 window 的尺寸为:\((w, h)\),锚框的尺寸为:\((w_1, h_1)\),则有: \[ \begin{cases} \frac{w_1h_1 ...
- 模拟ajax接口返回的数据
{ "status": 0, "hasError": false, "success": true, "errno": ...
- c#基础在winform操作数据库,实现增删改查
1.数据库操作类代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...
- Scrapy爬虫框架的安装
Scrapy框架是我在Windows中遇到的最难安装的第三方库,一直不想写这篇博客,但碰巧今天重装了系统,这正好是个机会? 1.安装pywin32:https://sourceforge.net/pr ...
- centos 7 安装 php 5.5 5.6 7.0
查看当前安装的PHP包 [root@node1 ~]# yum list installed | grep php php56w.x86_64 -.w7 @webtatic php56w-cli.x8 ...
- 喵哈哈村的魔法考试 Round #15 (Div.2) 题解
哗啦啦村的奇迹果实(一) 题解:显然答案就是最大值减去最小值. #include<bits/stdc++.h> using namespace std; const int maxn = ...
- redis源码分析
我阅读的源码版本是redis-2.8.19 src目录下总共96个.h,.c文件 1. 数据结构相关源码(15个左右)字符串代码: sds.h, sds.c字典:dict.h, dict.c链表: a ...
- TXB0108 TXS0108E 8-Bit Bidirectional Voltage-Level Translator for Open-Drain and Push-Pull Applications
TXS(开漏优化设计),如I2C TXB(上拉优化设计),如SPI TXS0108 has integrated pull-up resistors to save board space and c ...
- 使用Python学习selenium测试工具-4:查找元素
转自:https://blog.csdn.net/wd168/article/details/51819930 web通常包含了Hyper Text Markup Language (HTML).Ca ...
- 解决Matlab画图直接保存.eps格式而导致图不全的问题
Matlab确是一款简单方便的工具,使用此工具绘图也是我们常用的一种手段,可是如果我们想将此图片保存成.eps格式并应用于latex中,就有可能会出现.eps格式的图片显示不全的问题,这个着实让我们头 ...