一、普通函数
普通函数可以作为构造函数 示例:
function fn(str){
let msg = str + 'hello'
return msg
}
let a = fn('张三丰');
二、箭头函数
箭头函数
-
箭头函数不能作为构造函数,会报错 -
=> 后面只有一段表达式 代表return这段表达式 -
=> 后面如果有多段表达式 需要使用{}包括 并且手动return -
箭头函数只有一个参数 ()可以省略不写,多个参数不能省略 -
箭头函数的this不回被call或者apply修改 它的this指向window 当前上下文环境
示例:
let fn = (str) => str + 'hello';
let fn = (str) =>{
let msg = str + 'hello';
return msg
}
let a = fn('张无忌');
console.log(a);
二者的区别
- 普通函数可以作为构造函数,箭头函数不能作为构造函数,会报错
- 箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值,普通函数的this谁调用就是谁。
- 普通函数可以有匿名函数,也可以有具体名函数,但是箭头函数都是匿名函数。
- 每一个普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。但是箭头函数并没有此对象。