美文网首页
箭头函数和普通函数的几大区别

箭头函数和普通函数的几大区别

作者: 别闹23 | 来源:发表于2019-10-30 15:12 被阅读0次

    1.箭头函数是匿名函数,不能作为构造函数,不能使用new

        function Fn() {
        console.log(1);      //1
        }
        let fn1 = new Fn();    
    

    普通函数可以使用new实例化

     let Fn2 = () => {
     console.log(1);
     }
     let fn3 = new Fn2();
    
    屏幕快照 2019-10-30 下午2.59.13.png

    箭头函数使用new实例化会报错。


    2.普通函数有arguments,箭头函数没有arguments

    function fn() {
    console.log(arguments)    //[1,2,3,4,5]
    } 
    fn(1,2,3,4,5)
    

    箭头函数使用arguments会报错,可以使用...arg来解决

    let fn = () => {
     console.log(arguments)
    }
    fn(1,2,3,4,5)
    
    屏幕快照 2019-10-30 下午2.54.10.png
     let fn = (...arg) => {
     console.log(arg)    //[1, 2, 3, 4, 5]
     }
     fn(1,2,3,4,5)
    

    3.箭头函数没有this,会捕获上下文的this值作为自己的this值

    var obj = {
    name:'haha',
     fn(){
     console.log(this);    //this指向obj
      }
    }
    obj.fn();
    
    
    var obj = {
    name:'haha',
    fn:() => {
    console.log(this)    //this指向window
     }
    }
    obj.fn();
    

    4.箭头函数没有原型

     var a = ()=>{
     return 1;
     }
    
    function b(){
     return 2;
    }
    
    console.log(a.prototype);  // undefined
    console.log(b.prototype);   // {constructor: ƒ}
    

    相关文章

      网友评论

          本文标题:箭头函数和普通函数的几大区别

          本文链接:https://www.haomeiwen.com/subject/pmbovctx.html