猿问

创建对象之间的链接

我正在学习 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

      };


    }


  };


};

我想在这些对象之间创建链接,因为我需要调用,例如,谁住在房子里,反之亦然;但我不清楚如何做到这一点。


慕尼黑8549860
浏览 121回答 2
2回答

繁花不似锦

这是一个方法: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());创建您想要与 关联的任何House或对象。然后,您可以选择在创建每个 时传入或对象。每个或对象也将在该对象内具有可用的功能。CarPersonhomecarPersonhomecarPerson

慕容3067478

据我所知,您希望在 Person 对象中引用一个人的房屋和汽车。因此,要使其工作,您唯一需要做的就是将 House 和 Car 对象传递给 Person:let Person = function (  name,  surname,  yearOfBirth,  monthOfBirth,  dayOfBirth,  bornCity,  employment,  home,  car) {  this.name = name  this.surname = surname  this.yearOfBirth = yearOfBirth  this.monthOfBirth = monthOfBirth  this.dayOfBirth = dayOfBirth  this.bornCity = bornCity  this.employment = employment  this.home = home  this.car = car  return {    getFullPerson: function () {      return {        personalInformation: {          name: name,          surname: surname,          dateOfBirth: {            year: yearOfBirth,            month: monthOfBirth,            day: dayOfBirth,          },          bornCity: bornCity,        },        employment: employment,        home: home.getAddress(),        car: car.getCar(),      }    },  }}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答