箭头函数

135 阅读1分钟

一、普通函数

普通函数可以作为构造函数 示例:

 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);
    

二者的区别

  1. 普通函数可以作为构造函数,箭头函数不能作为构造函数,会报错
  2. 箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值,普通函数的this谁调用就是谁。
  3. 普通函数可以有匿名函数,也可以有具体名函数,但是箭头函数都是匿名函数。
  4. 每一个普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。但是箭头函数并没有此对象。