아직 참조 및 가비지 수집기가 자바 스크립트에서 작동하는 방식을 배우고 있으므로 부풀려진 부분과 누출을 줄일 수있는 방법을 배우게됩니다. 오브젝트를 보관 유지하는 팩토리를 작성합니다. 오브젝트에 건네지거나 값을 취득 할 수 있습니다.객체를 JSON 문자열로 변환하고 null로 만듭니다.
.factory('lib', function(){
var lib={};
return {
set: function(id,value,isObj){
if(isObj){
lib[id]=JSON.stringify(value);
}else{
lib[id]=value;
}
},
del: function(id){
lib[id]=null;
}
};
})
.controller('testCtrl',function(lib,$timeout){
lib.set("1",{'name':'James','sureName':'Potter'},true);
$timeout(function(){
lib.del("1");
},1000);
})
제 질문은; 내 obj를 문자열로 바꾸고 나중에 문자열을 돌려서 null 값으로 바꾼다. 내 원래 obj에 도달 할 수 있으며 가비지 수집기에서 수집합니까? 또한 obj의 속성에 어떤 일이 발생하여 문자열로 변신하려고합니까?
JSON.stringify는 객체가 생성되면 객체와 아무런 관련이없는 문자열을 반환하며, 객체에 대한 참조가 전혀없는 문자열 객체입니다. 원하는 개체와 문자열을 수정할 수 있으며 완전히 관련이 없습니다. –