普通函数格式: function add(a,b){return a+b};
箭头函数格式:add =(a,b)=>a+b;或add=(a,b)=>{return a+b;}这里就不详细说明箭头函数的简写规则,2者区别主要分为以下几个方面:
1.this方面:
普通函数内部的this,默认指向window,严格模式下指向undefined;
箭头函数内部的this,与上一级作用域中的this指向同一个地方。
具体示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
var person = {
name: "小明",
age: 2,
sayname: function() {
setTimeout(function() {
console.log(this)}, 500);
}
}
var person2 = {
name: "小张",
age: 4,
sayname: function() {
setTimeout(()=> {
console.log(this)}, 500);
}
}
person.sayname();
person2.sayname();
</script>
</html>
2.arguments方面:
普通函数,可以通过arguments来实现重载;
箭头函数中,没有arguments,代替它功能是剩余参数rest(...)。
示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
function add(...values) {
let sum = 0;
for (var val of values) {
sum += val;
}
return sum;
}
alert(add(2, 5, 3)) // 10
</script>
</html>
3.原型对象方面:
普通函数,是有自己的原型对象的;
箭头函数,没有原型对象。
4.new方面:
普通函数,可以作为构造函数,通过new实例化出子函数;
箭头函数,不能作为构造函数,使用new会报错。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?