JSONサーバーの応答から取得したユーザーのコレクションがあります。次のように想定します。
var users = [
{id: 1, name: 'john', surname: 'smith'},
{id: 2, name: 'john', surname: 'smith'},
{id: 3, name: 'john', surname: 'smith'},
{id: 4, name: 'john', surname: 'smith'},
{id: 5, name: 'john', surname: 'smith'},
{id: 6, name: 'john', surname: 'smith'},
{id: 7, name: 'john', surname: 'smith'}
];
アプリケーションのビジネスロジックと(ハンドルバー)テンプレートのある時点で、各ユーザーのフルネームを指定する必要がありますが、もちろん、name + ' ' + surname
あらゆる場所で連結ロジックを繰り返したくありません。
したがって、私はそれらのユーザーを「強化」し、私が望むこの機能を追加する次のことを行います。
for(var i=0,length=users.length; i<length; i++) {
users[i].getFullName = function() {
return this.name + ' ' + this.surname;
}
}
この手法は問題なく機能しますが、私の質問は次のとおりです。
- これを行うためのより良い方法はありますか?のようなものではなく、オブジェクト指向スタイルのソリューションが必要であることに注意してください
getFullNameOfUser(user)
。 - これらすべてのオブジェクトに関数を追加するための時間ペナルティを測定できますが、オブジェクトに関数を追加するためのメモリペナルティを測定できますか?JavaScriptオブジェクトサイズなどのソリューションは関数をカウントしません。