让前端飞

撤底理解es6中的箭头函数

2019-02-15  本文已影响0人  龙旗飘扬的舰队

本质上

//es6
const a = ()=>{ console.log(this) };

const b = ()=>{ console.log(arguments) }

function aaa(){
    const c = ()=>{ console.log(this) };
    c();
}
aaa();

function bbb(){
    const c = ()=>{ console.log(arguments) };
    c();
}
bbb()
//编译后
var a = function a() {
  console.log(undefined);
};

var _arguments = arguments;
var b = function b() {
  console.log(_arguments);
};

function aaa() {
  var _this = this;

  var c = function c() {
    console.log(_this);
  };
  c();
}
aaa();

function bbb() {
  var _arguments2 = arguments;

  var c = function c() {
    console.log(_arguments2);
  };
  c();
}
bbb();

特性解密

==this==

==arguments==

==柯里化==

//es6
const sum = num1 => num2 => num3 => num1 + num2 + num3;
//编译后
var sum = function sum(num1) {
  return function (num2) {
    return function (num3) {
      return num1 + num2 + num3;
    };
  };
};

不适合用箭头函数的情形

相关文章
箭头函数没有绑定this

上一篇 下一篇

猜你喜欢

热点阅读