gpt4 book ai didi

反转名称的 JavaScript 函数无法正常工作(来自 Learning JavaScript - O'Reilly 的示例)

转载 作者:行者123 更新时间:2023-11-30 09:50:04 25 4
gpt4 key购买 nike

我正在通过 Ethan Brown 的“学习 JavaScript”一书学习一些 JavaScript,我偶然发现了一个未按预期执行的示例,我似乎无法弄清楚错误是什么。我敢肯定这是显而易见的事情,我只是在学习这些东西的第 2 天,但这令人沮丧!

代码所在的部分着重于使用 this 关键字,这个示例应该展示在嵌套函数中使用 this 的正确方法。

这是代码(摘自书中,但我使用了我的名字而不是“Julie”!):

注意本书关注的是 ES6,而不是 ES5

const o = {
name: "Daniel",
greetBackwards: function() {
const self = this;
function getReversedName() {
let nameBackwards = "";
for (let i = self.length - 1; i >= 0; i--) {
nameBackwards += self.name[i];
}
return nameBackwards;
}
return `${getReversedName()} si eman ym , olleH`;
},
};

预期输出:

o.greetBackwards();

"leinaD si eman ym , olleH"

实际输出:

o.greetBackwards();

" si eman ym , olleH"

最佳答案

这个:

for (let i = self.length - 1; i >= 0; i--) {

应该是:

for (let i = self.name.length - 1; i >= 0; i--) {

因为self 指的是对象o。如果你想要名字,它必须是 self.name

编辑:您可以使用以下方法实现整个getReversedName 函数:

return [...self.name].reverse().join(''); // ES6 spread operator

关于反转名称的 JavaScript 函数无法正常工作(来自 Learning JavaScript - O'Reilly 的示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com