Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 - Fatal编程技术网

javascript中具有关系的对象?

javascript中具有关系的对象?,javascript,Javascript,我最近开始做面向对象的javascript,遇到了将两个对象相互连接的需要 这段代码的作用是创建一个company对象。根据公司对象的信息,它创建了一个名为person(联系人)的新对象 在联系人中,我需要访问公司对象中的一些数据。目前,我将其作为参数传递,并将其保存到person对象 function person(firstname, lastname, postal, adress){ this.attempt = 0 this.firstname = firstname

我最近开始做面向对象的javascript,遇到了将两个对象相互连接的需要

这段代码的作用是创建一个company对象。根据公司对象的信息,它创建了一个名为person(联系人)的新对象

在联系人中,我需要访问公司对象中的一些数据。目前,我将其作为参数传递,并将其保存到person对象

function person(firstname, lastname, postal, adress){
    this.attempt = 0
    this.firstname = firstname
    this.lastname = lastname
    this.postal = postal
    this.adress = adress
}
但这感觉像是一个糟糕的方法。从彼此内部引用对象的最佳实践是什么?我有几个company和person对象并行运行。

我会使用类似“静态方法”的东西:

因此,在回调中,它将是:

....
var myPerson = person.fromCompanyContact(myCompany.company);
....

我认为最好直接引用对象的属性,即作为arg传递属性

比如:
this.address=refereobj.prop

你能给我们提供更多的信息吗?完整的代码将非常有用。也许你可以创建一个新的。
person.fromCompanyContact = function (company) {
  return new person(company.contact.first_name, ...)
}
....
var myPerson = person.fromCompanyContact(myCompany.company);
....