为了账号安全,请及时绑定邮箱和手机立即绑定

萌新求教!「javascript」ES6 解构赋值問題十分感谢

萌新求教!「javascript」ES6 解构赋值問題十分感谢

叮当猫咪 2019-06-16 08:06:56
请问如何把object的method正常传递给function?如下:letJK={firstName:"John",lastName:"Kennedy",fullName:function(){returnthis.firstName+this.lastName;}}functiongetFullName({fistName,lastName,fullName}){console.log(fullName());}getFullName(JK);consoleresult是NaN当然,可以不用解构直接pass个object给function可以调用到fullName()这个method。正确该怎么做呢?
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

首先,你的getFullName里面的firstName拼错了。其次,这个解构没有问题,问题的根源在于this。解决办法:
returnthis.firstName+this.lastName;
替换成
returnJK.firstName+JK.lastName;
                            
查看完整回答
反对 回复 2019-06-16
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

其实这个是this指针的问题,像你这样写呢,执行fullName()时,this指向window。而this.firstName和this.lastName都是undefined,相加的时候当然返回NaN.
可以改成这样:
functiongetFullName(person){
const{firstName,lastName,fullName}=person;
console.log(person.fullName());
}
                            
查看完整回答
反对 回复 2019-06-16
  • 2 回答
  • 0 关注
  • 305 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信