为什么在对象中使用箭头函数会收到“不是函数”错误

时间:2018-11-21 08:02:25

标签: javascript function object ecmascript-6 arrow-functions

当我将箭头函数用于对象时,我不知道为什么会收到错误消息“ this.getName不是函数”。当我使用普通功能时,输出是好的。

具有正常功能的对象。一切都很好。

 var person = {
        name: 'Juan',
        lastname : 'Rodríguez',

        getName: function() {
            return this.name;
        },

        getLastname: function() {
            return this.lastname;
        },

        fullname:function () {
          return this.getName() + " " + this.getLastname()  
        }
    }

    console.log(person.fullname());  // good output Juan Rodríguez

但是使用箭头函数()=>时,出现错误,因为“ this.getName不是函数”

 var person = {
        name: 'Juan',
        lastname : 'Rodríguez',

        getName: () => {
            return this.name;
        },

        getLastname: () => {
            return this.lastname;
        },

        fullname: () => {
          return this.getName() + " " + this.getLastname()  
        }
    }

    console.log(person.fullname()); // bad output this.getName is not a function

有什么解决方法可以防止我出错?如果我想使用箭头功能?

0 个答案:

没有答案