JavaScript普通函数与箭头函数有怎样的区别?
比较点
普通函数
箭头函数
具体案例
简写
/
箭头函数如果没有参数,同时函数体的返回值只有一句,则{}和return都可以省略。
1、函数简写
this指向
this总是指向调用它的对象,如果作为构造函数,它指向创建的对象实例
箭头函数的this指向的是父级作用域的this,是通过查找作用域链来确定 this 的值,也就是说看的是上下文的this,指向的是定义它的对象,而不是使用时所在的对象。
2、this指向
this改变
call()、apply()、bind()等方法能改函数中this的指向
call()、apply()、bind()等方法不能改变箭头函数中this的指向
3、改变this指向
构造函数
可以作为构造函数,用来创建对象实例
箭头函数不能作为构造函数使用
4、构造函数
arguments对象
每一个普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。
箭头函数没有自己的arguments,取而代之用rest(剩余)参数...arg来解决
5、arguments与...args
prototype原型
具有prototype
没有prototype原型
6、prototype原型
1、箭头函数简写:箭头函数如果没有参数,同时函数体的返回值只有一句,则{}和return都可以省略 var fn = () => console.log("123");//去掉了{} 和 return fn(); //"123"2、this指向:普通函数中this指向的是调用它的对象,如果作为构造函数,它指向创建的对象实例 箭头函数不会创建自己的this, 所以它没有自己的this,它只会在自己作用域的上一层继承this。所以箭头函数中this的指向在它在定义时已经确定了,之后不会改变。 普通函数中this指向的9大场景:
函数的调用方式
this指向
对象.函数( )
对象
函数( )
window
IIFE 立即执行函数
window
定时器
window
DOM事件处理函数
添加事件监听的元素
数组[下标 ]( )
数组
call(对象,arg1,arg2)
对象
apply(对象,arry)
对象
new 函数()
对象的实例
9大场景对应的案例代码,太多放不下,需要粉丝群获取。 箭头函数中this指向
箭头函数不会创建自己的this, 所以它没有自己的this,它只会在自己作用域的上一层继承this。所以箭头函数中this的指向在它在定义时已经确定了,之后不会改变。
如果fn是普通函数,则this指向的是#box,如果是箭头函数,则this指向的是window 3、改变this指向普通函数通过调用call()、apply()、bind()可以改变this指向。 箭头函数无法通过调用call()、apply()、bind()改变this指向。
普通函数
箭头函数 4、构造函数普通函数可以作为构造函数来创建对象实例 箭头函数不能作为构造函数来使用,因为箭头函数没有自己的this
普通函数-用作构造函数
箭头函数-用作构造函数会报错 5、arguments与...args每一个普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。 箭头函数中访问arguments如果存在,则是来自于他的外层普通函数的arguments 箭头函数没有自己的arguments对象,取而代之用rest(剩余)参数...args解决
普通函数中arguments function sum(a) { console.log(arguments); console.log(arguments[0]); } sum(1, 2, 3); //Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ] //1
箭头函数没有arguments对象 const sum = () => console.log(arguments);//arguments未定义 sum(); //Uncaught ReferenceError: arguments is not defined箭头函数中访问arguments如果存在,则是来自于他的外层普通函数的arguments function a() { var b = () => console.log(arguments);//arguments是a函数中的 b(); } a(1, 2, 3); //Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
箭头函数中 ...args剩余参数 const sum = (a, ...args) => console.log(args); sum(1, "a", "b", 3); // ["a", "b", 3]arguments包含实际传递的所有参数,...args是剩余参数,只能放在所有参数后,并且不包含剩余参数前的参数。以下是错误写法
const sum = (a , ... args ,b ) => console .log(args ); 6、prototype原型普通函数具有prototype原型属性 箭头函数没有prototype原型属性 学习更多的JavaScript
如果你正在学习JS或者已经在我们的三十天计划中完成了4个综合项目实战,那不妨可以听下这个课程体系,三十天计划群里还提供了算法、数组等知识体系!
前端工程师成长方法
更多完整JavaScript课程体系在我们的系统班你有完整的呈现,包含了JavaScript基础篇、重点、算法、原理、面试题、实战案例讲解!同时也为你提供了前端高级工程师成长体系!(详细看下图内容)
如果需要深度学习的同学可以练习助理老师了解详细的课程以及课程的报名方式!(不定期会推出活动,有大额优惠券推出,活动详情联系助理老师了解即可!)如果你才开始学习前端,那么可以先学习我们的三十天计划(零基础的同学报名系统班同学可以和老师沟通制定学习计划,可以得到更快的成长!)
为帮助到一部分同学不走弯路,真正达到一线互联网大厂前端项目研发要求,首次实力宠粉,打造了《30天挑战学习计划》, 内容如下:
HTML/HTML5,CSS/CSS3,JavaScript,真实企业项目开发,云服务器部署上线,从入门到精通 PC端项目开发(1个) 移动WebApp开发(2个) 多端响应式开发(1个)
共4大完整的项目开发 !一行一行代码带领实践开发,实际企业开发怎么做我们就是怎么做。从学习一开始就进入工作状态,省得浪费时间。
从学习一开始就同步使用 Git 进行项目代码的版本的管理,Markdown 记录学习笔记,包括真实大厂项目的开发标准和设计规范,命名规范,项目代码规范,SEO优化规范
从蓝湖UI设计稿 到 PC端,移动端,多端响应式开发项目开发 真机调试,云服务部署上线; Linux环境下 的 Nginx 部署,Nginx 性能优化; Gzip 压缩,HTTPS 加密协议,域名服务器备案,解析; 企业项目域名跳转的终极解决方案,多网站、多系统部署; 使用 使用 Git 在线项目部署;
这些内容在《30天挑战学习计划》中每一个细节都有讲到,包含视频+图文教程+项目资料素材等。只为实力宠粉,真正一次掌握企业项目开发必备技能,不走弯路 !
过程中【不涉及】任何费用和利益,非诚勿扰 。
如果你没有添加助理老师微信,可以添加下方微信,说明要参加30天挑战学习计划,来自公众号!老师会邀请你进入学习,并给你发放相关资料。
30 天挑战学习计划 Web 前端从入门到实战 | arry老师的博客-艾编程
包头北方兵器城门票怎么这么贵啊?偷偷告诉你,门票可以不买的。早上早点去,晚上晚点去。你看看早上去锻炼身体的,都不用买票的4A级景区,15元门票还贵?里面都是退役的坦克飞机大炮!想省钱,有办法!早7点前,晚7点半后
你认为东莞哪个镇最繁华?本人在东莞十多年,走遍了东莞所有的镇。论繁华程度基本上分三极,第一极最繁华地区东莞城区(东城,南城,万江),长安,虎门。第二极繁华地区,厚街,塘厦,凤岗,常平,石龙,寮步,黄江,大
我大一一年都在坚持英语晨读,还跟着一个教育机构练口语,结果四级不及格,怎么回事?英语这种语言类学科重要的就是基础,基础好在加上积累到一定程度就会产生语感,我农村孩子,英语基础不行,初一全班前十英语都一百一十多,就我英语九十多,初二换班,遇上一个特奇葩的英语老师
一年级的孩子写字很丑,要不要送他去学习写字?我从事硬笔书法培训工作,对于这个问题有一点亲身经历!第一,一年级孩子在智力和动手能力上没有很大的差距。只是接受能力有快有慢!当然也确实有不开窍的!孩子写字丑是必然的,因为刚刚开始上
打羽毛球对膝盖伤害大吗?我打了三十年,被伤害最大的其实是。。羽毛球先明确一点正确的运动方式对膝盖只有好的影响。因为羽毛球或其它运动(比如跑步)使膝盖受到伤害,主要的原因主要来自于无法做到适可而止量力而为要
为什么男生喜欢穿宽松点的裤子,而女生喜欢紧身裤?大众审美里,女性要温和柔美,男性骨骼宽大,肌肉结实,穿紧身裤没有柔美感,但紧身裤却能毫不遮掩地把女性柔美的体型展现出来。欣赏角度的问题。从古至今,男人看女人,一是看脸蛋,二是看身材
有哪些简单又好看的通勤穿搭呢?上班族的通勤穿搭和平时的穿着还是有比较大的区别的。通勤单品一般用到的单品有衬衫西装直筒裙等避免的单品吊带背心热裤破洞牛仔裤等。八妹分享一一些既舒适又适合通勤的穿搭,希望对你有所帮助
沈阳周边游适合老年人的温泉?谢谢邀请!沈阳周边有不少温泉,尤其是近些年来,开发了不少,适合老人去的温泉我推荐二处1。辽阳汤河温泉。距离沈阳90多公里,离汤河水库风景区几步之遥。这里的温泉水温高达4045度,仅
不同的身材如何穿好牛仔裤?今天小编给大家推荐一款适合微胖小姐姐的穿搭,吊带背心搭配高腰牛仔裤。小姐姐上身穿着吊带背心,露肩的设计修饰脸型,露出了锁骨线,宽松的版型,舒适的面料,可以遮住肚子上的肉肉,是一件基
男生穿什么样的皮衣好看?皮衣款式选的好可以叫酷,选不好就成了中年油腻。黑色作为最经典的冷酷色,也称为很多款式的畅销色,因为我自己比较喜欢绅士的穿搭,无意中发现黑色皮衣内搭衬衫领带,再配上一条线条明显的西裤
长途自驾旅行h9和xt6谁更适合?长城汽车哈弗H9和凯迪拉克XT6,这两个车定位不一样的,长城的定位是一款硬派越野车,更注重的是车辆的动力系统以及其脱困的能力。凯迪拉克XT6是一款城市SUV,注重的是豪华,稳重舒适