2016-07-13 4 views
0

私は、サーバからオブジェクトの配列を返すという約束を持っています。 プロトタイプ属性を持つオブジェクトを定義し、これらのオブジェクトを設定してメモリを節約するためにこのプロトタイプを使用するように各オブジェクトを配列する最良の方法は何ですか?例えばプロトタイプを使ってオブジェクトの配列を設定する

getItems().success(function(data) { 
    var items = data; 
}) 

のは、このオブジェクトは詳細の属性を持っており、それが価値を持っているか、空にすることができましょう。だから、 、私はすべてのオブジェクトがメモリ内の場所に同じ参照を使用できるの詳細プロパティを空のプロトタイプを使用します場合は...

私はプロトタイプのアイデアの権利を理解し、私が管理していることを願っています私自身を説明してください...

+0

プロトタイプを追加したい約束事と機能を使用するコードの完全なスニペットを使用してください。より具体的な感謝の言葉を添えてください。 – GibboK

+0

任意のオブジェクトが使用する変数に約束応答を保存しますか? –

+1

あなたはもっと具体的になりますか? 「データ」に含まれるサンプルデータを提供し、その特定の例で、メモリが効率的に使用されていないと感じる場所を指摘します。注:「空」はJavaScript用語ではありません。 'undefined'を意味しますか? 'ヌル'? – trincot

答えて

-1

一般に、次のコードを使用して、関数/オブジェクトプロトタイプにプロパティを追加できます。

yourObject.prototype.yourProperty = 'yourValue'; 

約束は私の自然非同期であるので、あなたの約束が満たされたとき、あなたは見返りに、すべてのオブジェクトインスタンスを更新しますprototype、中にあなたのオブジェクトのプロパティの値を変更することができます。ネイティブの約束を使用して

一般的な例:Promise程度

var Class = function() {}; 
 
Class.prototype.data = 1; 
 

 
new Promise(function(resolve, reject) { 
 
setTimeout(function() { 
 
    resolve(10); 
 
}, 3000); 
 
    }) 
 
    .then(function(result) { 
 
Class.prototype.data = result; 
 
console.log('a fulfilled', a.data); 
 
console.log('b fulfilled', b.data); 
 
    }) 
 

 
var a = new Class(); 
 
var b = new Class(); 
 
console.log('a pending', a.data);

より。

詳細はObject.protoypeです。

+0

リクエストの直後にリクエストしても依頼がまだ進行中の場合はどうすればいいですか) –

+0

@IsmailRBOUH yourObject.prototype.data = null;プロミスが完了したらyourObject.prototypeを設定します。データ=データ; – GibboK

+0

代入は非同期で、私はsyncと言ってみましょう!私はあなたがそれを得るとは思わない! –

1

希望は私が右

いいえそれはデータのための任意のメモリを節約しないプロトタイプの考えを理解していました。

プロトタイプオブジェクトは、すべてインスタンスで共有されるプロパティに対してのみ使用する必要があります。「一部のインスタンスにはありますが一部ではありません」ではありません。このような共有プロパティの典型的な例はメソッドです。

実際にメモリに問題がなければ、don't try to optimise anythingここにあります。

+0

私はあなたの最新の声明に完全に同意します。「メモリに関する実際の問題がなければ、何も最適化しようとしないでください。 – GibboK

関連する問題