我正在学习 JavaScript,我创建了三个具有一些属性的不同对象:Person、House 和 Car。
let House = function(city, postalCode, street, streetNumber){
this.city = city;
this.postalCode = postalCode;
this.street = street;
this.streetNumber = streetNumber;
return {
getAddress: function() {
return {
'address': {
'city': city,
'postalCode': postalCode,
'street': street,
'streetNumber': streetNumber
}
};
}
};
};
let Person = function(name, surname, yearOfBirth, monthOfBirth, dayOfBirth, bornCity, employment){
this.name = name;
this.surname = surname;
this.yearOfBirth = yearOfBirth;
this.monthOfBirth = monthOfBirth;
this.dayOfBirth = dayOfBirth;
this.bornCity = bornCity;
this.employment = employment;
return {
getFullPerson: function() {
return {
'personalInformation': {
'name': name,
'surname': surname,
'dateOfBirth': {
'year': yearOfBirth,
'month': monthOfBirth,
'day': dayOfBirth
},
'bornCity': bornCity
},
'employment': employment,
'home': getAddress(), // pseudocode
'car': getCar() // pseudocode
};
}
};
};
我想在这些对象之间创建一个链接,因为我需要调用,例如,谁住在房子里,反之亦然;但我不清楚如何做到这一点。
最佳答案
这里有一个方法:
let House = function(city, postalCode, street, streetNumber){
this.city = city;
this.postalCode = postalCode;
this.street = street;
this.streetNumber = streetNumber;
return {
getAddress: function() {
return {
'address': {
'city': city,
'postalCode': postalCode,
'street': street,
'streetNumber': streetNumber
}
};
}
};
};
let Person = function(name, surname, yearOfBirth, monthOfBirth, dayOfBirth, bornCity, employment, house, car){
this.name = name;
this.surname = surname;
this.yearOfBirth = yearOfBirth;
this.monthOfBirth = monthOfBirth;
this.dayOfBirth = dayOfBirth;
this.bornCity = bornCity;
this.employment = employment;
this.house = house;
this.car = car;
return {
getFullPerson: function() {
return {
'personalInformation': {
'name': name,
'surname': surname,
'dateOfBirth': {
'year': yearOfBirth,
'month': monthOfBirth,
'day': dayOfBirth
},
'bornCity': bornCity
},
'employment': employment,
'home': (house ? house.getAddress() : null), // pseudocode
'car': (car ? car.getCar() : null) // pseudocode
};
}
};
};
let house1 = new House('city', 'postalCode', 'street', 'streetNumber');
let person1 = new Person('person', '1', 2020, 1, 1, 'bornCity', 'employment', null, null);
let person2 = new Person('person', '2', 2020, 1, 1, 'bornCity', 'employment', house1, null);
console.log(person1.getFullPerson());
console.log(person2.getFullPerson());
创建您想要与Person
关联的任何House
或Car
对象。然后,您可以选择在创建每个 Person
时传入 home
或 car
对象。每个 home
或 car
对象也将在 Person
对象中提供其功能。
关于javascript - 创建对象之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64711287/