gpt4 book ai didi

Javascript Koans - 关于对象 - 这个函数在 #3 中如何工作

转载 作者:行者123 更新时间:2023-12-03 10:02:23 25 4
gpt4 key购买 nike

我正在研究 Javascript Koans - 关于对象 - 问题 #3并且难以理解对象中的 BattleCry 功能如何工作。具体部分

Array(noOfBrains + 1).join(" " + this.mastermind)

当使用参数(4)调用该函数时,不是意味着(noOfBrains)= 4。因此

Array( 4 + 1 ).join(" " + this.mastermind)

这是否意味着这个数组有5个未定义的属性?然后由一个空格和主谋名称“Brain”连接起来。我不明白下面的正确答案如何产生 4 x “Brain”,那里没有循环函数,对吗?为什么它不是 5 x “大脑”?

下面是正确答案的代码。

it("should know properties that are functions act like methods",function () {
var megalomaniac = {
mastermind : "Brain",
henchman: "Pinky",
battleCry: function (noOfBrains) {
return "They are " + this.henchman + " and the" +
Array(noOfBrains + 1).join(" " + this.mastermind);
}
};

var battleCry = megalomaniac.battleCry(4);
expect("They are Pinky and the Brain Brain Brain Brain").toMatch(battleCry);
});

最佳答案

Array() 构造函数被设计为可在不使用 new 的情况下调用,因此它返回的内容与它的情况相同。使用 new 调用 — 即具有给定数量的未初始化元素的新数组实例。

.join() 函数根据一些明确定义的规则将每个数组元素转换为字符串,然后将参数连接到 .join() code> 数组元素中每个字符串之间。

未定义的元素将转换为空字符串。因此,您的代码构建了一个包含 5 个空(未定义)元素的数组,并将它们与该表达式(一个空格后跟 this.mastermind)连接在一起("Pinky ") 作为分隔符。五个空字符串之间有四个分隔符。

关于Javascript Koans - 关于对象 - 这个函数在 #3 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522129/

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