JavaScript 箭头函数
它变得更短了!如果函数只有一个语句,并且该语句返回一个值,则可以删除括号 和 这return
关键词:
笔记: 仅当函数只有一个语句时此方法才有效。
如果有参数,可以将它们传递到括号内:
事实上,如果只有一个参数,也可以跳过括号:
关于什么 this
?
处理 this
箭头函数与常规函数相比也有所不同。
简而言之,箭头函数没有 this
.
在常规函数中 this
关键字代表调用该函数的对象,可以是窗口,文档,按钮或其他任何对象。
使用箭头函数 this
关键词总是 表示定义箭头函数的对象。
让我们看两个例子来了解其中的区别。
两个示例都调用了两次方法,第一次是在页面加载时,第二次是在用户单击按钮时。
第一个例子使用常规函数,第二个例子使用箭头函数。
结果表明,第一个例子返回了两个不同的对象(窗口和按钮),而第二个例子两次返回了窗口对象,因为窗口对象是该函数的“所有者”。
例子
使用常规功能 this
代表对象调用 功能:
// 常规函数:
你好 = 函数(){
document.getElementById("演示").innerHTML += this;
}
// 窗口对象调用函数:
窗口.addEventListener(“加载”,你好);
// 按钮对象调用该函数:
document.getElementById("btn").addEventListener("点击",你好);
亲自尝试 »
例子
使用箭头函数 this
代表所有者 函数:
// 箭头函数:
你好 = () => {
document.getElementById("演示").innerHTML += this;
}
// 窗口对象调用函数:
窗口.addEventListener(“加载”,你好);
// 按钮对象调用该函数:
document.getElementById("btn").addEventListener("点击",你好);
亲自尝试 »
使用函数时请记住这些差异。有时常规函数的行为正是您想要的,如果不是,请使用箭头函数。
浏览器支持
下表定义了第一个完全支持 JavaScript 箭头函数的浏览器版本:
铬 45 | 边缘 12 | Firefox 22 | Safari 10 | Opera 32 |
2015 年 9 月 | 2015 年 7 月 | 2013 年 5 月 | 2016年9月 | 2015 年 9 月 |