箭头函数

5分钟搞定!Unity中Matcap玻璃材质快速实现(含免费贴图资源) 本文详细介绍了在Unity中快速实现Matcap玻璃材质的方法,从技术原理到实战操作,包括Shader编写、参数调节和性能优化。通过Matcap技术,开发者可以高效创建逼真玻璃效果,特别适合移动端和快速迭代项目。文章还提供了免费贴图资源和进阶优化技巧,帮助提升视觉效果和运行效率。 阅读详情

箭头函数表达式的语法比函数表达式更短,并且没有自己的this,arguments,super或new.target。这些函数表达式更适用于那些本来就需要匿名函数的地方,并且它们不能用作构造函数。

基础语法

(参数1,参数2,...,参数N) => { 函数表达式 }
(参数1,参数2,...,参数N) =>表达式(单一)
//相当于:(参数1,参数2,...,参数N) => {return 表达式;}

//当只有一个参数时,圆括号是可选的:
(单一参数) => {函数声明}
单一参数 => {函数声明}

//没有参数的函数应该写成一对圆括号。
() => {函数声明}

高级语法

// 加括号的函数体返回对象字面表达式:
参数 => ({foo: bar})

//支持剩余参数和默认参数
(参数1,参数2,...rest) => {函数声明}
(参数1 = 默认值1,参数2,...,参数N = 默认值N) => {函数声明}

//同样支持参数列表结构
let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f(); //6

引入箭头函数有两个方面的作用:更简短的函数并且不绑定this
在箭头函数出现之前:每个新定义的函数都有它自己的this值(在构造函数的情况下是一个新对象,在严格模式的函数调用中为undefined,如果该函数被作为“对象方法”调用则为基础对象等)。

function Person() {
	//Person() 构造函数定义`this`作为它自己的实例
	this.age = 0;
	setInterval(function growUp(){
		//在非严格模式,growUp()函数定义`this`作为全局对象,
		//与在Person()构造函数中定义的`this`并不相同,
		this.age++;
	}, 1000);
}
var p = new Person();

通过将this值分配给封闭的变量,可以解决this问题。

function Person() {
	var that = this;
	that.age = 0;
	setInterval(functon growUp() {
		// 回调引用的是`that`变量,其值是预期的对象
		that.age++;
	}, 1000);
}

或者,可以创建绑定函数,以便将预先分配的this值传递到绑定的目标函数

箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。

补充:js几乎全部是词法作用域(静态作用域)(顺着作用域链进行查找),只有eval()和this是动态作用域(顺着调用者的作用域进行查找),然而箭头函数内部的this是词法作用域。

function Person() {
	this.age = 0;
	
	setInterval(() => {
		this.age++; // this 正确地指向person对象
	}, 1000);
}
var p = new Person();

通过call或apply调用

由于箭头函数没有自己的this指针,call和apply不能绑定this,只能传递参数。

不绑定arguments

箭头函数不绑定Arguments对象。
所以,在大多数情况下,使用剩余参数是相较使用arguments对象的更好选择。

function foo() {
	var f = (...args) => args[0];
	return f(2);
}

foo(1);
//2

像函数一样使用箭头函数

箭头函数表达式对非方法函数是最合适的。作为方法时的问题:

'use strict';
var obj = {
	i: 10,
	b: () => console.log(this.i, this),
	c: function() {
		console.log(this.i, this);
	}
}
obj.b();
//undefined
obj.c();
//10,Object {...}

箭头函数没有定义this绑定。另一个涉及Object.defineProperty()的示例:

'use strict';
var obj = {
	a: 10
};
Object.defineProperty(obj, 'b', {
	get: () => {
		console.log(this.a, typeof this.a, this);
		return this.a + 10;	
		// 代表全局对象 'window', 因此'this.a' 返回 'undefined'
	}
});

使用new操作符
箭头函数不能用作构造器,和new一起用会抛出错误。

var Foo = () => {};
var foo = new Foo();  // TypeError: Foo is not a constructor

使用prototype属性
箭头函数没有prototype属性。

var Foo = () => {};
console.log(Foo.prototype); // undefined

使用yield关键字
不能使用

解析顺序

let callback;

callback = callback || function() {};//ok
callback = callback || () => {};
//报错
callback = callback || (() => {}); //ok

箭头函数闭包

//标准的闭包函数
function A(){
	var i = 0;
	return function b(){
		return (++i);
	};
};
//箭头函数体的闭包
var Add = (i=0) => {return (() => (++i))};
var v = Add();
v();//1
v();//2

//因为仅有一个返回,return及括号()也可以省略
var Add = (i=0) => () => (++i);
集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“ 项目场景: 设想是将Calibre集成到cadence virtuoso中,但网上的解决办法尝试过在本机上实验都有点问题,因此想记录下来我的解决办法仅供参考。 问题描述: 安装好cadence, calibre之后打开virtuoso,CIW窗口显示 *Error* load: can't access file - "/opt/eda/Mentor/lib/calibre.skl" 问题是出在calibre.skl的加载路径出错,尝试网上的在工程目录下修改.cdsinit文件,添加calibre安装 阅读详情

相关推荐

利用python-docx提取word的高亮部分

利用python-docx提取word的高亮部分 没有找到分享的文档,于是就自己研究了一下。 可以通过python里的python-docx去提取word内的高亮文本。 file=docx.Document(filepath) for para in file.paragraphs: for i in para.runs: #i.font.highlight_color设置了高亮颜色 if i.font.highlight_color is not None:

double_0221的博客 1810

这一次,彻底搞懂箭头函数

一、箭头函数的特点 1. 相比普通函数,箭头函数有更加简洁的语法。 普通函数 function add(num) { return num + 10 } 箭头函数 const add = num => num + 10; 2. 箭头函数不绑定this,会捕获其所在上下文的this,作为自己的this。 这句话需要注意的是,箭头函数的外层如果有普通函数,那么箭头函数的this就是这个外层的普通函数的this,箭头函数的外层如果没有普通函数,那么箭头函数的this就是全局变量。 下面

Always-Learning 2万+

MMSegmentation 安装教程,避免mmcv不合适版本,及相关问题解决

都行,不做要求。

qq_43683133的博客 1220

箭头函数详解

ES6中允许使用=>来定义函数。箭头函数相当于匿名函数,并简化了函数定义。箭头函数没有自己的this指向,它会捕获自己定义所处的外层执行环境,并且继承这个this值。箭头函数的this指向在被定义的时候就确定了,之后永远都不会改变。永远)解析:普通函数的setTimeout 一秒后执行是在全局作用域,所有this指向window对象,this.id指向了全局变量id,输出Golbal。

2301_78359537的博客 4765

保姆级教程:用STM32CubeMX给STM32F407配置RTC秒中断,并解决掉电时间丢失问题

本文详细介绍了如何使用STM32CubeMX为STM32F407配置RTC秒中断,并解决掉电时间丢失问题。通过硬件原理与软件配置的双视角解析,帮助开发者实现精确计时与时间持久化,适用于物联网设备和工业控制器等场景。

weixin_42519733的博客 136

行为预测模型:Social LSTM与Graph Neural Networks

行为预测模型:Social LSTM与Graph Neural Networks ,人工智能,计算机视觉,大模型,AI,本文围绕行为预测模型Social LSTM与Graph Neural Networks展开,介绍了两者的基础概念、原理、应用场景,还对比了它们在优势、劣势和适用场景上的不同,最后给出了相应的代码示例。Social LSTM基于LSTM,通过社交池化层处理多智能体交互;图神经网络处理图结构数据,靠消息传递获取信息,二者各有侧重,适用于不同场景。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

C#语言的箭头函数

箭头函数是一种用更简洁的方式定义匿名函数的语法,通常用于表示一次性使用的函数。它的基本形式是用“=>”符号来分隔函数的参数和函数体。箭头函数在实际编程中广泛应用于 LINQ 查询、事件处理、委托等场景,使代码更加简洁和易读。C#中的箭头函数为开发者提供了一种简洁而强大的方式来表达匿名函数的意图。通过箭头函数,我们可以编写出更加清晰、可读性强的代码,尤其是在处理LINQ查询、事件处理和委托时。尽管箭头函数带来了诸多便利,但在使用过程中我们也需要注意一些细节以确保代码的正确性和高效性。

2501_91056678的博客 711

系统架构设计(以飞控系统、航电系统、机电管理系统、电子电气架构为例)

系统架构涉及对系统的结构和行为进行高层次的描述。它包括系统的组成部分、这些部分之间的关系、与外部环境的交互方式,以及满足特定功能和非功能性需求的方法。系统架构定义了系统的总体设计蓝图,指导系统的开发、集成、部署和维护。系统架构设计的目的是通过合理的结构和设计原则,确保系统能够高效、稳定、安全地运行,满足当前和未来的需求,同时具备良好的维护性、扩展性和可持续性。良好的系统架构不仅能够提高系统的开发效率和运行性能,还能降低长期的维护和运营成本,支持系统的持续演进和技术更新。

qq_41854911的博客 3052

箭头函数(Arrow Function)

箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。 箭头函数的好处 一、 箭头函数语法 (1)删掉function关键字加上=> (2)没有参数加括号 (3)一个参数可以选择不加() (4)多个参数必须加(),并且参数之间用逗号分割。 二、隐式返回 三、箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值。 ...

qq_60332750的博客 5023

Python爬虫-汽车之家各车系月销量榜数据

本文是该专栏的第41篇,后面会持续分享python爬虫干货知识。本文以某汽车平台为例,基于python采集该平台“各车系月销量”的榜单数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 1619

Python 爬虫实战:在丁香医生抓取健康科普文章阅读量,普及健康知识

requests:用于发送 HTTP 请求,获取网页内容。或 lxml:用于解析 HTML 页面,提取目标数据。pandas:用于数据清洗和分析。matplotlib和seaborn:用于数据可视化。通过本项目,我们实现了以下目标:使用 Python 爬虫抓取丁香医生的健康科普文章阅读量。对数据进行清洗和分析,找出热门文章。通过可视化展示数据,并普及健康知识。

u014481728的博客 1567

ES6新特性箭头函数语法、如何正确使用箭头函数

ES6标准新增了一种新的函数:Arrow Function(箭头函数)。 基础语法 通常函数的定义方法 var fn1 = function(a, b) { return a + b } function fn2(a, b) { return a + b } 使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数...

qq_32614411的博客 8万+

倍福--TwinSAFE功能块的使用

在安全模块的程序设计中,输入变量取反,或者把PLC的变量连接到安全的功能块程序中, 操作流程 1.1. 功能块输出取反 例如修改IN,右击属性,然后可在Single-Channel选项中选择是NO还是NC的输入信号。 1.2. PLC标准变量作为安全程序的输入 1.2.1. 建立两个PLC变量 1.2.2. 安全程序区创建变量 1.2.3. 功能块变量链接 首先,PLC变量不能直接连到Estop功能块的输入变量中,否则会报错,但PLC可以连接到SafeAnd这些功能块,然后再转出来,如下所示

weixin_41883890的博客 5311

1、什么是箭头函数

目录基础语法箭头函数与function的区别1、this的指向:2、构造函数3、变量提升什么时候不该使用箭头函数1、在对象上定义函数2、在原型上定义函数3、动态上下文中的回调函数4、构造函数中 基础语法 通常函数的定义方法 var fn1 = function(a, b) { return a + b } function fn2(a, b) { return a + b } 使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参

abuanden的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

前端JavaScript篇之箭头函数与普通函数的区别、如果new一个箭头函数的会怎么样、箭头函数的this指向哪⾥?

箭头函数和普通函数是 JavaScript 中的两种不同的函数形式,它们在语法和行为上存在一些区别。

星辰迷上大海的博客 1733

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

箭头函数有哪些特性

分别是this指向、构造函数、arguments对象、隐式返回值和类成员方法

从人到猿 3760

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

箭头函数的使用

箭头函数的使用基本用法为什么要有箭头函数和普通函数的区别不绑定this不绑定arguments什么时候不能用箭头函数 基本用法 ES6 允许使用“箭头”(=>)定义函数。 var f = v => v; 上面的箭头函数等同于: var f = function(v) { return v; }; 如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。 var f ...

我是谁的博客 1874

javaScript之箭头函数

在JavaScript中,箭头函数(Arrow Function)是一种使用箭头(=>)定义函数的新语法。它的引入为函数表达式提供了更简洁的语法,并且不绑定自己的this、arguments、super或new.target。1、箭头函数有一个参数的时候可以省略小括号2、箭头函数返回值只有一条语句时可以省略return和{}3、箭头函数没有内置对象arguments*4、箭头函数不是构造函数,不能构造实例化对象5、箭头函数的this不能发生改变,call和apply能调用箭头函数。

weixin_62160709的博客 3408

为什么使用箭头函数

转发https://segmentfault.com/a/1190000009410939 一 为什么要有箭头函数 我们在日常开发中,可能会需要写类似下面的代码 const Person = { 'name': 'little bear', 'age': 18, 'sayHello': function () { setInterval(functi...

DiegoBrother的博客 3949

关于箭头函数的嵌套

关于箭头函数嵌套,也称为函数柯里化,它只不过是箭头函数的语法糖。那在项目中一般怎么使用呢? (1)普通函数: function add(a, b) { return a + b; } (2)普通函数柯里化(匿名函数) function add(a) { return function(b) { return a + b; } } 调用 console.l...

马优晨 2674

Javascript箭头函数的优势在哪里

译者按: 看上去只是语法的变动,其实也影响了this的作用域。 原文: JavaScript: Arrow Functions for Beginners 译者: Fundebug 为了保证可读性,本文采用意译而非直译。 本文我们介绍箭头(arrow)函数的优点。 更简洁的语法 我们先来按常规语法定义函数: function funcName(params) { return param...

Fundebug博客 2850

箭头函数详讲(箭头函数中的this)

箭头函数详讲(箭头函数中的this) 箭头函数的基本使用: 在这里插入图片描述 知识点: 箭头函数是不能提升的,所以需要在使用之前定义。 使用 const 比使用 var 更安全,因为函数表达式始终是一个常量。 如果函数部分只是一个语句,则可以省略 return 关键字和大括号 {},这样做是一个比较好的习惯 箭头函数this的几种解释说法 1.当我们使用箭头函数的时候,箭头函数会默认帮我们绑定外层 this 的值,所以在箭头函数中 this 的值和外层的 this 是一样的。 2.箭头函数中的this引

qq_52395816的博客 1万+

【JavaScript】箭头函数

箭头函数的this不取决于调用取决于定义, 定义在哪个作用域就是指向谁, 这里的箭头函数定义在了事件处理函数中, 所以this指向事件源。注意: 这里的定时器已经不再是原来的定时器, 原来的定时器里面的参数写的是普通函数, 将普通函数改成箭头函数之后就按照箭头函数的情况考虑。这里的this在定时器内, 定时器里的函数是自动执行, 指向window, 我们需要将this指向li, 所以接下来修改代码。箭头函数外面的函数this是啥,箭头函数this就是啥。会自动把这句话的结果当做函数的返回值。

LuWeien的博客 980

JavaScript 箭头函数

文章目录箭头函数语法示例 1:无参数的箭头函数示例 2:带一个参数的箭头函数示例 3:作为表达式的箭头函数示例 4:多行箭头函数this 与箭头函数在常规函数中在箭头函数中参数绑定带有 Promise 和回调的箭头函数使用箭头函数应该避免的事情参考文档     在本教程中,您将借助示例了解 JavaScript 箭头函数。     箭头函数是 ES6 版本 JavaScript 中引入的特性之一。与常规函数相比,它允许您以更简洁的方式创建函数。例如,     这个函数: // function expres

运维狗的备忘录 952

ES6箭头函数、箭头函数与普通函数的区别

一、基本语法 ES6中允许使用箭头=>来定义箭头函数,具体语法,我们来看一个简单的例子: // 箭头函数 let fun = (name) => { // 函数体 return `Hello ${name} !`; }; // 等同于 let fun = function (name) { // 函数体 return `Hello ${name} !`; }; 可以看出,定义箭头函在数语法上要比普通函数简洁得多。箭头函数省去了function关键字,采

d_agege的博客 1013
上一篇: 函数节流
下一篇: JavaScript二分查找(折半查找)
DoubleSRZee
博客等级 码龄10年 7粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值