另一个对象中的对象数组(Javascript)
Javascript的新成员试图更好地使用这种语言进行编码。因此,我试图创建一个对象,应该是一个牙科诊所。在那个诊所里,我想要一个所有在那里工作的牙医的数组。牙医也是对象(因此对象中的对象)。当我尝试添加/访问对象时,它们是未定义的,它告诉我它们的方法不存在。我不确定错误可能是什么,从我使用Java的时候起,我就习惯用这种方式编码。 有人能检查一下代码并给我指出正确的方向吗?感谢任何帮助另一个对象中的对象数组(Javascript),javascript,arrays,object,Javascript,Arrays,Object,Javascript的新成员试图更好地使用这种语言进行编码。因此,我试图创建一个对象,应该是一个牙科诊所。在那个诊所里,我想要一个所有在那里工作的牙医的数组。牙医也是对象(因此对象中的对象)。当我尝试添加/访问对象时,它们是未定义的,它告诉我它们的方法不存在。我不确定错误可能是什么,从我使用Java的时候起,我就习惯用这种方式编码。 有人能检查一下代码并给我指出正确的方向吗?感谢任何帮助 function createDentistObject(firstName, lastNa
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 iiirxscreateDentistObject
被作为函数调用,因此如果JS未处于严格模式,则此
将引用窗口
对象;如果设置了严格模式,则此将引用未定义对象。我还没有深入了解是否设置了严格模式。现在我只是用node.js运行我的js,但是谢谢你的提醒