视频加载失败

箭头函数

530 字
3 分钟
箭头函数

箭头函数<不具备this和arguments>,自己家没有this就会往上级找this,从而解决this的指向问题。

如何更改this指向#

  • 1)call、apply、bind
  • 2)var that=this;
  • 3)箭头函数

如何确定this是谁#

看谁调用的,点前面是谁,this就是谁

箭头函数怎么写#

//将下列函数改为箭头函数
function a(b){
return b+1;
}
//第一步:
let a=(b)=>{return b+1;}
//第二步(简化):
let a=b=>b+1;

总结:

  • 箭头函数中没有function关键字,去掉function关键字
  • 当形参只有一个的时候,可以省略小括号
  • 小括号和大括号之间有一个箭头:有大括号,必须要写return;如果没有大括号,表示箭头后面的结果就是return的结果

将下列函数改为箭头函数:

function a(b){
return function(c){
return b+c
}
}
a(1)(2)// 3 -> 先执行a 再执行里面的匿名函数

箭头函数:

//第一步
let a=b=>{
return function(c){
return b+c
}
}
//第二步:删除function和一个形参的小括号
let a=b=>{
return c=>{
return b+c
}
}
//第三步:删return和大括号
let a=b=>c=>b+c //高阶函数(俩个箭头及两个以上箭头的)

闭包#

  • 函数执行的一瞬间
  • 导致内存泄漏->因为会产出不销毁的作用域
  • 当执行后返回的结果必须是引用数据类型,被外界变量接收,此时这个函数不会销毁
  • 作用<私有化>
  • 闭包能干什么<模块化>
//以下函数不是闭包:
function a(b){
return function(c){
return b+c
}
}
a(1)
a(1)(2)
//不是闭包的原因:函数执行的一瞬间确实有形成闭包,但是函数执行完成后,作用域就被销毁了,所以不是闭包
//以下函数是闭包:
let a=function (b){
return function(c){
return b+c
}
}();
//是闭包的原因:函数执行的一瞬间确实有形成闭包,当执行后返回的结果是引用数据类型,被外界变量a接收,此时这个函数不会销毁,会产出不销毁的作用域,容易导致内存泄漏,所以是闭包

在vue中很多时候不能用箭头函数

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
箭头函数
https://gaodaxiu-blog.netlify.app/posts/箭头函数/
作者
GaoDaXiu
发布于
2018-08-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
GaoDaXiu
Hello, I'm GaoDaXiu.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
76
分类
20
标签
128
总字数
72,109
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Netlify CI
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录