使用原型设置对象数组

时间:2016-07-13 17:25:47

标签: javascript prototype

我有一个承诺,它从服务器返回一个对象数组。 使用原型属性定义对象的最佳方法是什么,并为每个对象设置这些对象数组以使用此原型以节省内存?

例如

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

让我们说这个对象具有 detail 的属性,它可以有一个值或为空。 因此,如果我使用原型,那么所有对象的空 detail 属性都可以使用与内存中相同的引用...

希望我理解原型理念是正确的,并且我设法解释了自己...

2 个答案:

答案 0 :(得分:1)

  

希望我理解原型理念

没有。它不会为数据保存任何内存。

原型对象应仅用于所有实例共享的属性,而不是“某些实例拥有它而某些实例没有”的属性。这种共享属性的典型示例是方法。

除非你对记忆没有任何实际问题,否则don't try to optimise anything在这里。

答案 1 :(得分:-1)

通常,您可以使用以下代码将属性添加到函数/对象原型中。

yourObject.prototype.yourProperty = 'yourValue';

Promise是我的本性异步,所以当你的承诺得到满足时,你可以在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);

有关Promise的更多信息。

有关Object.protoype的更多信息。