Skip to content

Latest commit

 

History

History
94 lines (52 loc) · 1.14 KB

arrow-function.md

File metadata and controls

94 lines (52 loc) · 1.14 KB

箭头函数 arrow function

箭头函数 VS 普通函数


箭头函数的优势

  • 简洁的语法

箭头函数

let add = (a, b) => a + b

普通函数

let add = function(a, b) {
  return a + b;
}

  • 语法
    () => { ... } // no parameter
    
     x => { ... } // one parameter
     
(x, y) => { ... } // several parameters
  • 函数体内表达式
x => x * x  // expression

// 等同于
x => { return x * x } 
// ES6 箭头函数
const squares = [1, 2, 3].map(x => x * x);

// 普通函数
const squares = [1, 2, 3].map(function (x) { return x * x });
  • 没有this绑定

    that = this

function Prefixer(prefix) {
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function (arr) {
    var that = this; // (A)
    return arr.map(function (x) {
        return that.prefix + x;
    });
};

> var pre = new Prefixer('Hi ');
> pre.prefixArray(['Joe', 'Alex'])
[ 'Hi Joe', 'Hi Alex' ]