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

请教各位一个问题,求解答:「javascript」ES6 解构赋值問題怎么回事哈啊?

请教各位一个问题,求解答:「javascript」ES6 解构赋值問題怎么回事哈啊?

杨__羊羊 2019-08-21 19:10:17
请问如何把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贡献1842条经验 获得超12个赞

首先,你的getFullName里面的firstName拼错了。其次,这个解构没有问题,问题的根源在于this。解决办法:
returnthis.firstName+this.lastName;
替换成
returnJK.firstName+JK.lastName;
                            
查看完整回答
反对 回复 2019-08-21
?
暮色呼如

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

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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号