我做错了什么

What am I doing wrong?

本文关键字:什么 错了      更新时间:2023-09-26

这是我迄今为止的Javascript代码。我正在尝试创建一个带有两个函数的personInfo()对象。我不确定我做错了什么。

var personInfo = 
{
    personInfo.personRelation: " ",
    personInfo.personName: " ",
    personInfo.personAge: 0,
    personInfo.personGender: " "
    var relationValue = personRelation;
    var nameValue = personName; 
    var ageValue = personAge;
    var genderValue = personGender; 
    getPersonInfo: function()               
            {
                document.write( "<p>" + personInfo.personRelation + "<br />" );
                document.write( "Name: " + personInfo.personName + "<br />");
                document.write( "Age: " + personInfo.personAge + "<br />" );
                document.write( "Gender: " + personInfo.personGender + "</p>" );
            }
    setPersonInfo(relationValue, nameValue, ageValue, genderValue): function()
            {
                this.relationValue = relationValue;
                this.nameValue = nameValue;
                this.ageValue = ageValue;
                this.genderValue = genderValue;
            }
}; // end object personInfo

这是我的html代码。。。我正在尝试使用while循环打印每个对象。我是Javascript的新手,所以我不确定我是否在外部Javascript文件中出错,或者这只是我的实现。任何帮助都会很棒。非常感谢。

<html>
    <head>
        <link rel="stylesheet" href="object.css" type ="text/css" />
        <title>Object Test</title>
        <script type="text/javascript" src="MyObject.js">
            var people = new Array(5);
        </script>
    </head>
    <body>
        <script type="text/javascript" src="MyObject.js">
            var dad_info = setPersonInfo("Dad", "Kenneth Vavrock", 66, "Male");
            dad_info = people[0];
            var mom_info = setPersonInfo("Mom", "Connie Vavrock", 63, "Female");
            mom_info = people[1];
            var brother_info = setPersonInfo("Brother", "Craig Vavrock", 33, "Male");
            brother_info = people[2];
            var nephew_info = setPersonInfo("Nephew", "Sawyer Vavrock", 1, "Male");
            nephew_info = people[3];
            var dad_info = setPersonInfo("Step Mother", "Bonnie Vavrock", 70, "Female");
            stepmother_info = people[4];
            var count = 1;
            while ( count >= 0 )
                {
                    dad_info.getPersonInfo();
                    mom_info.getPersonInfo();
                    brother_info.getPersonInfo();
                    nephew_info.getPersonInfo();
                    stepmother_info.getPersonInfo();
                    count--;
                }
        </script>
    </body>
</html>

您的"personInfo"对象格式不正确,它看起来像是object literal和类似function的类的混合体。看看这个教程

此外,不要使用空字符串" "作为任何东西的默认值(除非你真的需要),否则这真的没有意义

解决手头的问题。

var personInfo = function () {
    this.personRelation = "";
    this.personName = "";
    this.personAge = 0;
    this.personGender = "";
    this.getPersonInfo = function () {
        document.write( "<p>" + personInfo.personRelation + "<br />" );
        document.write( "Name: " + personInfo.personName + "<br />");
        document.write( "Age: " + personInfo.personAge + "<br />" );
        document.write( "Gender: " + personInfo.personGender + "</p>" );
    }
};

这样就可以这样使用:

var people = []; // Create an empty array
// Create new person info for "dad"
var dad_info = new personInfo();
dad_info.personRelation = "...";
// [...]
people.push(dad_info); // Add dad_info to the array.

你应该做好一切准备。