js函数中箭头函数和普通函数的区别
1.外观上
箭头函数: 1、没有function 直接通过箭头指向 2、箭头的函数体中只有return,可以省略return 3、参数为一个时,可以没有小括号 |
普通函数: 1、有function 2、必须有return 3、必须有小括号 |
const getSum = (a, b) => { return a + b; }; const getSum = (a, b) => a + b; const getSum = a => a + 1;
|
function getSum(a, b) { return a + b; } function getSum(a) { return a + 2; }
|
2.this指向不同
箭头函数的this是父级作用域的this
普通函数的this指向函数的调用者
3. call、apply、bind无法改变箭头的this的指向
4. 箭头函数不可作为构造函数使用,而普通函数可以
5.普通函数可以通过arguments获取输入的参数(类数组对象); 箭头函数不可以使用arguments否则会报错。
6. 普通函数定义的构造函数内部,支持使用new.target
,返回构造实例的构造函数。而在箭头函数中,不支持使用new.target
。在浏览器环境中,箭头函数使用new.target
将报错:new.target expression is not allowed here
。