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

请问如何把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。
正确该怎么做呢?
叮当猫咪
浏览 306回答 2
2回答

人到中年有点甜

首先,你的getFullName里面的firstName拼错了。其次,这个解构没有问题,问题的根源在于this。解决办法:returnthis.firstName+this.lastName;替换成returnJK.firstName+JK.lastName;

天涯尽头无女友

其实这个是this指针的问题,像你这样写呢,执行fullName()时,this指向window。而this.firstName和this.lastName都是undefined,相加的时候当然返回NaN.可以改成这样:functiongetFullName(person){const{firstName,lastName,fullName}=person;console.log(person.fullName());}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript