gpt4 book ai didi

javascript - Khan SmileyFace - 无限循环问题

转载 作者:行者123 更新时间:2023-11-28 18:33:03 25 4
gpt4 key购买 nike

我正在可汗学院从事 SmileyFace 项目。这比我迄今为止能做到的更难。

为什么文本命令输出无限循环?输出应该是“Hello”。但正在打印:

"function(speak){
__env__KAInfiniteLoopCount++;
if (__env__KAInfiniteLoopCount++<"

...此后还有更多行。

谢谢。这是我的代码:

var SmileyFace = function(centerX,centerY){
this.centerX = centerX;
this.centerY = centerY;
};

SmileyFace.prototype.draw = function() {
fill(255, 234, 0);
ellipse(this.centerX, this.centerY, 150, 150);
fill(0, 0, 0);
ellipse(this.centerX-30, this.centerY-30, 20, 20);
ellipse(this.centerX+30, this.centerY-30, 20, 20);
noFill();
strokeWeight(3);
arc(this.centerX, this.centerY+10, 64, 40,0,180);
};

SmileyFace.prototype.speak = function(speak){
text(this.speak,this.centerX,this.centerY+40);
};

var face = new SmileyFace(200,300);
face.draw();
face.speak("Hello.");

最佳答案

就在这里:

SmileyFace.prototype.speak = function(speak){
text(this.speak,this.centerX,this.centerY+40);
};

不是将变量 speak传递给函数text,而是传递函数 speak 。因此,不要使用 this.speak,而只需 speak

这就是为什么函数和变量最好不要同名。

如果你看this我认为这是您从哪里获得作业的地方,您会注意到他们的做法有所不同:

SmileyFace.prototype.speak = function(hey) {
fill(255, 0, 174);
text(hey,this.centerX-4, this.centerY+100);
};

他们将参数 hey (为了避免混淆,它与函数的名称不同! - 但有点愚蠢......)到 text 函数。如果您将其更改为 this.speak,您就会看到您所描述的行为。

关于javascript - Khan SmileyFace - 无限循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37620288/

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