为了账号安全,请及时绑定邮箱和手机立即绑定

创建对象之间的链接

创建对象之间的链接

慕尼黑8549860 2023-07-14 10:00:04
我正在学习 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      };    }  };};我想在这些对象之间创建链接,因为我需要调用,例如,谁住在房子里,反之亦然;但我不清楚如何做到这一点。
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

这是一个方法:


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


查看完整回答
反对 回复 2023-07-14
?
慕容3067478

TA贡献1773条经验 获得超3个赞

据我所知,您希望在 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(),

      }

    },

  }

}



查看完整回答
反对 回复 2023-07-14
  • 2 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信