我有一个承诺,它从服务器返回一个对象数组。 使用原型属性定义对象的最佳方法是什么,并为每个对象设置这些对象数组以使用此原型以节省内存?
例如
getItems().success(function(data) {
var items = data;
})
让我们说这个对象具有 detail 的属性,它可以有一个值或为空。 因此,如果我使用原型,那么所有对象的空 detail 属性都可以使用与内存中相同的引用...
希望我理解原型理念是正确的,并且我设法解释了自己...
答案 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的更多信息。