es6新特性之箭头函数

<script>
    {
        // es3,es5
        var evens = [1, 2, 3, 4, 5];
        var odds = evens.map(function (v) {
            return v + 1;
        });
        console.log(evens, odds);
    }
    {
        // es6
        let evens = [1, 2, 3, 4, 5];
        let odds = evens.map(v => v + 1);
        console.log(evens, odds);
    }
/*
* this指向的是该函数被调用的对象,b是c调用的,c本身是一个对象,this指向c,c中的a就是a+
* */
    {
        // es3,es5
        var factory = function () {
            this.a = 'a';
            this.b = 'b';
            this.c = {
                a: 'a+',
                b: function () {
                    return this.a
                }
            }

        };
        console.log(new factory().c.b());//输出a+
    }
/*
* 箭头函数函数体中this的指向是定义时this的指向
  b在定义时,this指向的是函数体中的this,也就是构造函数的实例,this.a也就是a
* */
    {
        // es6
        var factory = function () {
            this.a = 'a';
            this.b = 'b';
            this.c = {
                a: 'a+',
                b: () => {
                    return this.a
                }
            }

        };
        console.log(new factory().c.b());// 输出a
    }
</script>

猜你喜欢

转载自www.cnblogs.com/zhanzhuang/p/10701598.html