2016-07-13 4 views
0

서버에서 객체 배열을 반환하는 약속이 있습니다. 프로토 타입 속성을 사용하여 객체를 정의하고 객체를 설정하여 객체를 배열하여 메모리를 절약하려면이 프로토 타입을 사용하는 가장 좋은 방법은 무엇입니까? 프로토 타입을 사용하여 객체 배열 설정

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

예를

를 들어

은의이 객체가 세부의 속성이 있다고 가정 해 봅시다 그것은 값이 있거나 비어있을 수 있습니다. 내가 메모리 장소에 동일한 참조를 사용할 수있는 모든 객체의 세부 속성을 비워 프로토 타입을 ... 사용합니다 경우 그래서

희망 난 지금 내가 관리했습니다하는 프로토 타입의 생각을 이해 자신을 설명하십시오 ...

+0

프로토 타입을 속성에 추가하려는 약속 및 기능을 사용하는 코드의 전체 스 니펫을 사용하여주십시오. 좀 더 구체적으로 감사 할 수 있습니다! – GibboK

+0

모든 객체에서 사용할 변수에 약속 응답을 저장 하시겠습니까? –

+1

좀 더 구체적으로 알려주시겠습니까? '데이터'에 포함될 샘플 데이터를 제공 한 다음, 메모리가 효율적으로 사용되지 않는 것으로 느껴지는 특정 예를 가리킨다. 주의 : "empty"는 JavaScript 용어가 아닙니다. '정의되지 않았다 '는 뜻입니까? 'null'? – 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

관련 문제