我的 javascript class 的自定义 object 实验室不 运行

Custom object lab for my javascript class not running properly

我正在为我的 Javascript class 开发一个实验室,它是一个专门用于自定义 object 和构造函数的实验室。 object。我正在定制 object 一些我喜欢的音乐艺术家。创建一个我可以重复访问的收藏夹列表。我创建了一个构造函数(称为 musicalArtist)来创建音乐艺术家。通过传递参数然后将自定义 object 存储在数组中。然后我创建了另一个名为 showInfo() 的函数。在第一 行,我输入了以下代码:

var 信息 = “ ”

这会创建一个空字符串,我可以在 运行 通过 object秒。然后我创建了一个 for 循环,其中一个名为 count 的计数变量设置为 0。在 forloop 中,我将有关 object 的详细信息添加到 info 变量中。 当用户单击按钮时,它应该 运行 showInfo() 函数但它没有?这是我的代码:

 <!DOCTYPE html>
 <html lang="en">

 <head>
 <title> Custom Objects Lab</title>
 <script>
    function musicalArtist(name, song, description){
        this.name = name;
        this.song = song;
        this.description = description;
    }
    var t= new musicalArtist("Tyler the Creator", "All of them", "He's 
    beautiful I might cry");
    var s= new musicalArtist("Slipknot", "Wait and Bleed", "Literally so 
    awesome");
    var a= new musicalArtist("Ayesha Erotica", "Literal Legend", "She is 
    such an icon");
    var myArtists = [t];
    var myAritsts= [s];
    var myAritsts = [a];
    function showInfo() {
        var info = ""
        for (var count = 0; count < 3; count++) {
            info += "Name:" + myAritsts[count].name + "\n";
            info += "Best Song:" + myAritsts[count].song + "\n";
            info += "Descrition:" + myAritsts[count].description + 
     "\n";
        }
        alert(info);
     }
     </script>
     </head>

   <body>
    <button onclick="showInfo()">A</button>
   </body>
   </html>

在加载 javascript 时尝试使用事件绑定,并在您的 JS 底部添加以下代码: document.getElementById("button").addEventListener("click", showInfo);

将按钮的 HTML 更改为: <button id="button">A</button>

您的 console.log 中发生错误,因为代码不正确,但现在它确实加载了点击事件

您的代码非常接近工作。虽然 @stroeda 关于使用事件侦听器的建议现在更常用,但这并不是阻止您的代码工作的原因。

指导您正确方向的一些注意事项:

1) 定义构造函数时,函数名以大写字母开头是惯例。因此,使用 function MusicalArtist 而不是 function musicalArtist。这不会改变功能,但如果其他人正在查看您的代码,这是可以预期的。

2) 每次你写 var myArtists = [something] 都会覆盖之前的 myArtists 数组。你想要的是一个包含三位艺术家的数组。

3) 如果您尝试遍历整个数组,最好使用数组的 length 属性,而不是硬编码假设长度 3。这样,如果长度发生变化,您的代码将能够处理。

4) 请务必检查拼写。一个拼写错误可能会破坏您的整个程序。你有一个打字错误会破坏你的代码。如果您在 VS Code and use a linter 这样的编辑器中编写代码,将更容易发现拼写错误。

祝 class 好运!