ECMAScript 6(ES6)入门

函数

此课程是收费课程,请先购买或加入会员后再访问。

函数

[TOC]

使用 => 来定义函数

let fn = (a, b) => {
    return a + b;
}

//简写为
let fn = (a, b) =>  a + b;

//等同于
let add = function(a, b) {
    return a + b;
}

//回调函数
var nums = [1, 2, 3, 4, 5];
var result = nums.map((item) => item * 2);
console.log(result);

解决 this 问题

问题所在,如下写法,this.age得到的值是20

var age = 20;
var pipi = {
    age: 10,
    grow: function(){
        setTimeout(function(){
            console.log(this.age);
        }, 100);
    }
};

pipi.grow();

以往的解决方案

//方法一
var pipi = {
    age: 10,
    grow: function(){
        const self = this;
        setTimeout(function(){
            console.log(self.age);
        }, 100);
    }
};

pipi.grow();

//方法二
var pipi = {
    age: 10,
    grow: function(){
        setTimeout(function(){
            console.log(this.age);
        }.bind(this), 100);
    }
};

pipi.grow();

ES6中的解决方案

var pipi = {
    age: 10,
    grow: function(){
        setTimeout(() => {
            console.log(++this.age);
        }, 100);
    }
};

pipi.grow();

函数的默认参数

function fn(name='aaron', sex='male') {
    console.log(name);
}
fn('pipi');

Rest参数(参数数组)

function fn(...args) {
    console.log(args);
    // [1, 2, 3]
}

fn(1, 2, 3);


function fn(name, ...args) {
    console.log(name);
    console.log(args);
}
fn('Aaron', 1, 2, 3);