zoukankan      html  css  js  c++  java
  • 箭头函数与普通函数的区别

    箭头函数在一定程度上简化了普通函数的写法,但是在一些特殊的用法上箭头函数并不能够代替普通函数,他们的几点区别如下:

    1. 箭头函数不创建自己的this重要,所以它没有自己的this,它只会从自己的作用域链的上一层继承this
      this.num = 2;
      const a = { num: 1, foo: function () { console.log(this);//{ num: 1, foo: [Function: foo],  foo1: [Function: foo1]} console.log(this.num);//1 },    foo1: ()=> {    console.log(this);//{num:2}    console.log(this.num);//2 } } a.foo(); a.foo1();

      普通函数作为对象的方法调用时,this指向它所属的对象。因此foo方法中this.num指向的是a.num,箭头函数中的this指向是全局执行环境中的this,它的this指向的就是全局中this.num

    2. .call()/.apply()/.bind()无法改变箭头函数中this的指向

      a.foo.call({num:3});
      a.foo1.call({num:3});

      同样用上面的例子来说明,普通函数的this.num会变成3,而箭头函数的this永远指向的是全局环境中的this,因此它的值永远都是2

    3. 箭头函数没有自己的arguments

    4. 箭头函数不能作为构造函数使用 态指向被点击的按钮对象

  • 相关阅读:
    CDN技术分享
    大型网站架构技术一览
    Remember-Me功能
    spring-security用户权限认证框架
    关于 tomcat 集群中 session 共享的三种方法
    Nginx+Tomcat+Terracotta的Web服务器集群实做
    Terrocotta
    使用hibernate tools插件生成POJO
    Session简介
    Cookie设置HttpOnly,Secure,Expire属性
  • 原文地址:https://www.cnblogs.com/yinping/p/10891583.html
Copyright © 2011-2022 走看看