私は作成しているオブジェクトと、そのオブジェクトのデータをさまざまなプロパティに読み込むための関数を持っています。この方法は必要に応じて機能しますが、重複しているような気がします。これはより簡潔に、より良い方法で達成できますか?例えば、使用別にオブジェクトを宣言して読み込むための簡潔な方法
var user = {
productLine: {
userActiveValue: []
},
id: {
PACT: null,
EDIPI: null,
AKO: null,
},
name: {
first: null,
last: null,
},
DMIS: null,
region: null,
email: null,
load: true,
loadUser: function (userInfoAPIResponse) {
this.id.PACT = userInfoAPIResponse.UID;
this.id.EDIPI = userInfoAPIResponse.EDIPN;
this.id.AKO = userInfoAPIResponse.akoUserID;
this.name.first = userInfoAPIResponse.fName;
this.name.last = userInfoAPIResponse.lName;
this.DMIS = userInfoAPIResponse.dmisID;
this.region = userInfoAPIResponse.RHCName;
this.email = userInfoAPIResponse.userEmail;
console.log(this);
}
};
あなたのオブジェクトのプロパティ名と 'userInfoAPIResponse'によって返された値のプロパティ名との間に一貫性を保つなら、ループを実行するだけです。また、 'loadUser'はプロトタイプの拡張として' user'オブジェクトの外になければなりません。 – Baruch
APIによって返されるオブジェクトは別の部門からのものです。そのAPIから来る命名規則は、私たちが使用したい命名規則とは異なり、最後に変更するオプションはありません。私はそれが同じかもしれないことを望む。 –
私はQwertiyのソリューションが好きですが、オブジェクトリテラルに固執し、作業が完了する前に 'loadUser'が呼び出されることを保証したい場合は、上記のプロパティ定義を取り除くことができます(' productLine'と 'load'を除くあなたの 'loadUser'関数にそれらを割り当てていません)。残りのデータは、データをロードするときに書き込まれ、最初に定義する必要はありません。 –