代码之家  ›  专栏  ›  技术社区  ›  Alyssa

卡在5.3.4代码程序(JavaScript)上

  •  0
  • Alyssa  · 技术社区  · 7 年前

    本课程中的说明如下:

    编写一个在图形画布上绘制水平线的函数。如果直线是水平的,则端点的y值相同。函数的参数应为y位置和长度,所有直线应从x位置0开始。您的函数必须命名为horizontalLine。

    例如,如果您呼叫:

    horizontalLine(100, 200);
    

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

    如果启动函数如下所示:

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

    最终的世界应该是这样的 this . 现在,我的世界看起来就像那样,但代码检查返回错误。我不确定我的代码有什么问题,但我猜是因为它希望我在start函数中输入两个数字,而不是四个数字,但我无法让它工作。我在这个问题上纠结了将近一个月,答案可能很简单,但我想不出来,请帮忙。

    这是我的代码:

    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 回复  |  直到 7 年前
        1
  •  0
  •   tmdesigned    7 年前

    是的,自动代码检查器取决于像您的函数这样的东西是否按照指定的方式设置。您的函数可能需要2个参数,但您的函数需要4个参数,因此当它发送值时,它们没有被指定给正确的变量。

    查看对horizontalLine的start函数调用中的值。您是否注意到,在给出的4个选项中,每次都有2个是相同的?您的第二个参数和第四个参数总是相同的,因为正如练习提示所解释的,平线具有相同的y值。所以你不需要把它们分开传递,因为它们是一样的。你只需要递一次,但要用两次。

    提示还指定x值始终从0开始。然而,您每次都在传递它(请注意,您的第一个参数始终为0?)。所以,你不需要把它传进来,只要用它就行了。

    这就是概念,现在开始实施。

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