通过使用正在破坏的es6功能,在对象中如果我们制作了一些方法,那么我们也可以提取那些方法,作为我们可以的属性,当我尝试这样做时,请看看上面的代码
let person = {
name: "Ravi",
favGames: ["cricket", "Badminton", "Tennis"],
displayFavGames() {
this.favGames.forEach(game => {
console.log("My gave game " + game)
})
}
}
person.displayFavGames();
let displayData = ({
name,
favGames,
displayFavGames
}) => {
return `My name is ${name} and my cofavourite games is
${displayFavGames}`;
}
console.log(displayData(person));

答案 0 :(得分:2)
displayFavGames
是一个函数,因此您需要调用它。
但由于它是对象的属性并使用this
,因此您需要使用属性表示法来调用它:object.displayFavGames()
。如果解构参数,则可以这样做,因为您没有引用原始对象的变量。您可以将参数作为单个变量获取,然后在初始化局部变量时使用解构。
如果你想替换该函数的结果,它需要返回一个字符串,而不是使用console.log()
。
let person = {
name: "Ravi",
favGames: ["cricket", "Badminton", "Tennis"],
displayFavGames() {
return this.favGames.join("\n ");
}
}
person.displayFavGames();
let displayData = (p) => {
let {
name,
favGames,
displayFavGames
} = p;
return `My name is ${name} and my cofavourite games are
${p.displayFavGames()}`;
}
console.log(displayData(person));
答案 1 :(得分:0)
displayFavGames
是一个函数,虽然你可以解构它,你需要调用它,这似乎没有实现你想要的。相反,您可以显示所有的favGames值。
let displayData = ({
name,
favGames
}) => {
return `My name is ${name} and my cofavourite games is
${favGames.join(",")}`;
}
console.log(displayData(person));