箭头函数等于function?

    var obj = {
      id: "awesome",
      cool: function() {
        setTimeout(function() {
          console.log(this.id)
        }, 100);
      }
    };
    obj.cool()  //  undefined

输出undefinede因为丢失了this绑定

    var obj = {
      id: "awesome",
      cool: function() {
        setTimeout(function() {
          console.log(this.id)
        }.bind(this), 100);
      }
    };
    obj.cool()  //  awesome
    var obj = {
      id: "awesome",
      cool: function() {
        setTimeout(()=> {
          console.log(this.id)
        }, 100);
      }
    };
    obj.cool()  //  awesome

es6中会把同词法作用域联系起来 箭头函数不仅仅是简写function
当然使用bind手动绑定也可

你可能感兴趣的:(箭头函数等于function?)