坚持5.3.4 codeHS程序(JavaScript)

时间:2018-02-09 19:16:17

标签: javascript parameters horizontal-line

在课程中,说明是:

编写一个在图形画布上绘制水平线的函数。如果一条线是水平的,那么端点的y值是相同的。函数的参数应该是y位置,长度和所有行应该从x位置0开始。你的函数必须命名为horizo​​ntalLine。

例如,如果你打电话:

horizontalLine(100, 200);

你应该从位置(0,100)开始得到一条长度为200的水平线。

如果您的启动功能如下:

function start(){
    horizontalLine(100, 200);
    horizontalLine(200, 100);   
    horizontalLine(300, 20);
}

结尾世界应该像this。现在我让我的世界看起来完全像那样,但代码检查返回错误。我不确定我的代码有什么问题,但我猜它是因为它要我输入两个数字而不是我的启动函数中的四个但是我无法让它工作。我已经坚持了近一个月,答案可能很简单,但我无法理解,请帮助。

这是我的代码:

function start() {
    horizontalLine(0, 100, 200, 100);
    horizontalLine(0, 200, 100, 200);   
    horizontalLine(0, 300, 20, 300);
}

function horizontalLine (x1, y1, x2, y2) {
    var x1 = 0;
    var y1 = y2;
    var line = new Line (x1, y1, x2, y2);
    add(line);
}

1 个答案:

答案 0 :(得分:0)

是的,自动代码检查程序依赖于您正在按照指定设置的功能。很可能期望你的函数有两个参数,但你的函数想要4,所以当它发送值时,它们不会被分配给正确的变量。

查看start函数调用horizo​​ntalLine时的值。你是否注意到4个给定的,2个每次总是相同的?你的第二和第四个参数总是相同的,因为,正如练习提示所解释的那样,平面线具有相同的y值。因此,您不需要单独传递它们,因为它们是相同的。你只需将它传递一次,但使用它两次。

提示符还指定x值始终从0开始。但是,您每次都要传递它(请注意您的第一个参数始终为0?)。所以再次,你不需要传递它,只需使用它。

这就是概念,现在用于实施。

你的功能的前两行实际上或多或少都在做他们需要做的事情。他们正在设置不需要传入的变量。那么,为什么要传递它们呢?只需将您的函数定义更改为仅发送您实际使用的两个参数!