箭头函数与普通 function 的区别

简介: 箭头函数与普通 function 的区别

1、书写上的区别

箭头函数的语法比普通函数更加简洁,而且在一定情况下还可以简写,比如:

function fun(x, y) {
    return x + y;
}
let fun = (x, y) => { return x + y };
//1. 如果 () 内只有一个参数,可以省略 ()
//2. 如果 {} 内只有一句 return ...,可以省略 return 和 {}

2、参数上的区别

普通函数的参数是 arguments,而箭头函数是 arg,比如:

let arr = [1,2,3]
~function(){
    console.log(arguments);
}(arr);     //输出 [1,2,3]
let a = (...arg) => { 
    console.log(arg); 
}
a(arr);     //输出[1,2,3]

3、this 指向的区别

箭头函数没有自己的 this,它里面的 this 是继承所属上下文中的 this,而且使用 call 与 apply 都无法改变

let obj = { name: 'obj' }
function fun1() {
    console.log(this);
} 
fn1.call(obj); 
let fun2() => { console.log(this); }
fn2.call(obj); 

4、可否使用 new 关键字

箭头函数不能使用 new 生成构造函数,因为箭头函数没有 prototype,而 construct 在 prototype 里面

function Fun1() { this.x = 100; } 
let f1 = new Fun1; 
let Fun2 = () => { this.x = 200; }
let f2 = new Fun2; //输出 Fun2 is not a constructor
目录
相关文章
|
1月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
2月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新特性,与传统函数相比,它有更简洁的语法,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。箭头函数不适用于构造函数,不能使用new关键字调用。
|
2月前
|
数据可视化 开发者 索引
详解Wireshark LUA插件函数:function p_myproto.dissector(buffer, pinfo, tree)
在 Wireshark 中,LUA 插件通过 `function p_myproto.dissector(buffer, pinfo, tree)` 扩展协议解析能力,解析自定义应用层协议。参数 `buffer` 是 `PacketBuffer` 类型,表示原始数据包内容;`pinfo` 是 `ProtoInfo` 类型,包含数据包元信息(如 IP 地址、协议类型等);`tree` 是
95 1
|
2月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新语法,相比传统函数表达式更简洁,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。这使得箭头函数在处理回调和闭包时更加灵活方便。
|
2月前
|
C++ 容器
函数对象包装器function和bind机制
函数对象包装器function和bind机制
24 0
|
4月前
【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
|
4月前
|
安全 JavaScript 应用服务中间件
【Azure Function App】如何修改Azure函数应用的默认页面呢?
【Azure Function App】如何修改Azure函数应用的默认页面呢?
|
4月前
|
C# C++ Python
【Azure 应用服务】Azure Durable Function(持久函数)在执行Activity Function时候,因为调用函数名称错误而导致长时间无响应问题
【Azure 应用服务】Azure Durable Function(持久函数)在执行Activity Function时候,因为调用函数名称错误而导致长时间无响应问题
|
4月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
4月前
|
JSON 数据格式 Python
【Azure 应用服务】Azure Function Python函数中,如何获取Event Hub Trigger的消息Event所属于的PartitionID呢?
【Azure 应用服务】Azure Function Python函数中,如何获取Event Hub Trigger的消息Event所属于的PartitionID呢?

热门文章

最新文章