搜尋

首頁  >  問答  >  主體

es6对象方法简写?

var person = {
    name: "Nicholas",
    sayName() {
        console.log(this.name);
    }
};

var person = {
    name: "Nicholas",
    sayName:()=> {
        console.log(this.name);
    }
};

这两种写法有什么区别?

高洛峰高洛峰2957 天前770

全部回覆(2)我來回復

  • 代言

    代言2016-11-09 11:37:05

    this的不一样,箭头函数不会产生新的this

    回覆
    0
  • 三叔

    三叔2016-11-09 11:36:49

    区别在于第一个 this 指向 person,也就是你调用 person.sayName() 时可以得到 Nicholas,第二个实际上可以看作

    var person = {
        name: "Nicholas",
        sayName: function() {
            console.log(this.name);
        }
    };

    它的 this 实际上指向的是 window 而不是 person,所以取不到对应的 name 值

    回覆
    0
  • 取消回覆