-1

请问如何把object的method正常传递给function?
如下:

let JK = {
  firstName: "John",
  lastName: "Kennedy",
  fullName: function() {
    return this.firstName + this.lastName;
  }
}

function getFullName({ fistName, lastName, fullName }) {
  console.log(fullName());
}

getFullName(JK);

console result 是 NaN

当然,可以不用解构直接pass个object给function可以调用到fullName()这个method。

正确该怎么做呢?

2019-01-11 提问

查看全部 6 个回答

0

其实正是因为JK对象被解构了。
所以fullNameJK中的方法变成了一个单独的函数,进而导致函数内部的this指向了全局对象。

推荐答案

1

已采纳

首先,你的getFullName里面的firstName拼错了。
其次,这个解构没有问题,问题的根源在于this
解决办法:

    return this.firstName + this.lastName;

替换成

    return JK.firstName + JK.lastName;

推广链接