0

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

这段代码所做的是它创建了一个公司对象。并根据来自该公司对象的信息创建一个名为 person 的新对象(它是一个联系人)。

search.parseresults(function(announcementID){
    //query every single page
    var myCompany = new company(announcementID);
    myCompany.requestPage(function(){
        //on response parse the data.
        myCompany.parsedata()
        var myPerson = new person(myCompany.company.contact.firstname, myCompany.company.contact.lastname, myCompany.company.contact.postal, myCompany.company.contact.adress )
        myPerson.getPhone(function(){
            //console.log(myPerson)
            //myPerson.save();
        });
    })
});

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

function person(firstname, lastname, postal, adress){
    this.attempt = 0
    this.firstname = firstname
    this.lastname = lastname
    this.postal = postal
    this.adress = adress
}

但这感觉像是一个糟糕的方法。从彼此内部引用对象的最佳实践是什么?我有几个公司和个人对象并行运行。

4

2 回答 2

0

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

person.fromCompanyContact = function (company) {
  return new person(company.contact.first_name, ...)
}

所以在回调中它将是:

....
var myPerson = person.fromCompanyContact(myCompany.company);
....
于 2013-08-09T11:01:07.957 回答
0

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

喜欢:this.address = referObj.prop;

于 2013-08-09T11:14:32.073 回答