Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
另一个对象中的对象数组(Javascript)_Javascript_Arrays_Object - Fatal编程技术网

另一个对象中的对象数组(Javascript)

另一个对象中的对象数组(Javascript),javascript,arrays,object,Javascript,Arrays,Object,Javascript的新成员试图更好地使用这种语言进行编码。因此,我试图创建一个对象,应该是一个牙科诊所。在那个诊所里,我想要一个所有在那里工作的牙医的数组。牙医也是对象(因此对象中的对象)。当我尝试添加/访问对象时,它们是未定义的,它告诉我它们的方法不存在。我不确定错误可能是什么,从我使用Java的时候起,我就习惯用这种方式编码。 有人能检查一下代码并给我指出正确的方向吗?感谢任何帮助 function createDentistObject(firstName, lastNa

Javascript的新成员试图更好地使用这种语言进行编码。因此,我试图创建一个对象,应该是一个牙科诊所。在那个诊所里,我想要一个所有在那里工作的牙医的数组。牙医也是对象(因此对象中的对象)。当我尝试添加/访问对象时,它们是未定义的,它告诉我它们的方法不存在。我不确定错误可能是什么,从我使用Java的时候起,我就习惯用这种方式编码。 有人能检查一下代码并给我指出正确的方向吗?感谢任何帮助

        function createDentistObject(firstName, lastName, age)
    {
        let dentistObject =
        {
            firstName: firstName, lastName: lastName, age:age,
            getFullName: function()
            {
                return this.firstName + " " + this.lastName;
            }
        };
    }

    function createDentistList()
    {
        let dentistList = [(createDentistObject("Test","Test",0))];
        return dentistList;
    }


    let myDentalClinic =
    {
        dentists:createDentistList(),

        addDentist:function(dentistObject)
        {
            console.log("Dentistfullname: " + this.dentistObject.getFullName());
            if(this.dentists.length == 0)
            {
                this.dentists.push(this.dentistObject);
            }
            else
            {
                /*if(this.dentistExist(dentistObject))
                {
                    console.log("Dentist exists in the list!");
                }*/
                    this.dentists.push(dentistObject);

            }
        },

        dentistExist:function(dentistObject)
        {
            for(let i = 0; i < this.dentists.length; i++)
            {
                if(this.dentists[i].firstName === dentistObject.firstName)
                {
                    return true;
                }
            }
            return false;
        },

        printAllDentists:function()
        {
            let output = "";
            for(let i = 0; i < this.dentists.length; i++)
            {
                output += this.dentists[i].firstName + "\n";
            }
            console.log(output);
            console.log(this.dentists);
        }
    };


    let dentistTest = createDentistObject("Dentist", "Dentiston", 38);
    myDentalClinic.addDentist(dentistTest);
函数createDentistObject(firstName、lastName、age)
{
让牙科对象=
{
名字:名字,名字:名字,年龄,
getFullName:函数()
{
返回this.firstName+“”+this.lastName;
}
};
}
函数createDentistList()
{
让dentistList=[(createDentistObject(“Test”,“Test”,0))];
返回牙医;
}
让我的牙科诊所=
{
牙医:createDentistList(),
添加牙医:功能(牙医对象)
{
log(“Dentistfullname:+this.dentistObject.getFullName());
如果(this.dentists.length==0)
{
this.dentists.push(this.dentistObject);
}
其他的
{
/*如果(此牙科医生(牙科对象))
{
log(“列表中存在牙医!”);
}*/
这个。牙医。推(牙医对象);
}
},
牙科医生:功能(牙科对象)
{
for(设i=0;i
您忘记在第一个函数中返回创建的Destinter对象:

function createDentistObject(firstName, lastName, age)
{
    let dentistObject =
    {
        firstName: firstName, lastName: lastName, age:age,
        getFullName: function()
        {
            return this.firstName + " " + this.lastName;
        }
    };

    return dentistObject;
}
此外,使用this.dentistObject而不是作为参数的dentistObject时,myDentalClinic对象中也存在一些拼写错误。固定的:

let myDentalClinic =
{
    dentists:createDentistList(),

    addDentist:function(dentistObject)
    {
        console.log("Dentistfullname: " + dentistObject.getFullName());
        if(this.dentists.length == 0)
        {
            this.dentists.push(dentistObject);
        }
        else
        {
            /*if(this.dentistExist(dentistObject))
            {
                console.log("Dentist exists in the list!");
            }*/
                this.dentists.push(dentistObject);

        }
    },

    dentistExist:function(dentistObject)
    {
        for(let i = 0; i < this.dentists.length; i++)
        {
            if(this.dentists[i].firstName === dentistObject.firstName)
            {
                return true;
            }
        }
        return false;
    },

    printAllDentists:function()
    {
        let output = "";
        for(let i = 0; i < this.dentists.length; i++)
        {
            output += this.dentists[i].firstName + "\n";
        }
        console.log(output);
        console.log(this.dentists);
    }
};
让myDentalClinic=
{
牙医:createDentistList(),
添加牙医:功能(牙医对象)
{
log(“Dentistfullname:+dentistObject.getFullName());
如果(this.dentists.length==0)
{
这个。牙医。推(牙医对象);
}
其他的
{
/*如果(此牙科医生(牙科对象))
{
log(“列表中存在牙医!”);
}*/
这个。牙医。推(牙医对象);
}
},
牙科医生:功能(牙科对象)
{
for(设i=0;i
这就是我在下班后和深夜编写代码所得到的……没有理由这么做。感谢您指出,out iiirxs
createDentistObject
被作为函数调用,因此
如果JS未处于严格模式,则此
将引用
窗口
对象;如果设置了严格模式,则此将引用
未定义对象。我还没有深入了解是否设置了严格模式。现在我只是用node.js运行我的js,但是谢谢你的提醒