箭头函数

es6允许用箭头表示函数,称为箭头函数。

箭头函数看起来是语法上的变动,其实也影响了this的作用域。

我们可以通过在控制台输入输出查看箭头函数的作用。

如果我们换成箭头函数的话,等同于:

很简单。

如果只有一个参数,可以省略括号:

parameters => { statements }

 

如果返回值仅仅只有一个表达式(expression), 还可以省略大括号:

parameters => expression
 
// 等价于:
function (parameters){
return expression;
}

 

 

再一个好处是函数体内定义的this对象,是定义时所在的对象,不是使用时的对象。

eg:

传统函数的this很善变,作用域仅限与当前函数:

 

man = {
    name:'lee',
    init:function(){
        var self = this;
        var printName = function() {
            console.log(self.name);
        }
        printName();
    }
}
man.init();

 

箭头函数this取决于在哪儿定义,不可变:

man = {
    name:'lee',
    init:function(){
        var printName = () => {
            console.log(this.name);
        }
        printName();
    }
}
man.init();

 

posted @ 2017-06-28 15:37  兔子兔子0125  阅读(141)  评论(0)    收藏  举报