2011-10-04 6 views
2

죄송합니다. 이전 주제의 재 게시이지만 검색을 수행하고 비슷한 게시물을 찾을 수 없습니다.메모리를 절약하는 동안 자바 스크립트 상속

다음 코드 조각은 내가 수행중인 프로젝트에서 자바 스크립트 상속을 수행하는 방법을 보여줍니다. 이제는 불행히도 대부분의 최종 사용자가 매우 낮은 메모리 winXP + EI7 설정에 있으므로 모든 것을 저장하려고합니다. 내가 할 수있는 기념비.

이제 내 질문은 : 실제로 생성자의 끝에 params = null을 설정하여 메모리를 저장하고 window.namespace.MyClass.MySubclass 포인터를 할당 한 후 MyClass 포인터와 동일한 작업을 수행해야합니까? 같은 가치?

(function (window, undefined) { 

    var MySubClass = function (params) { 

     this.elements = { 
      // jQuery dom elements 
     }; 

     this.vars = { 
      // vars 
     }; 

     this.controls = { 
      // class instances 
     }; 

     this.init(params); 
     params = null; // cleanup 
    }; 

    MySubClass.prototype = new namespace.MyClass.Base(); 

    MySubClass.prototype.init = function (params) { 

     // do stuff 

     params = null; // cleanup 
    }; 


    MySubClass.prototype.add = function (item) { 
     // adds item to an internal collection 
    }; 

    window.namespace.MyClass.MySubClass = MySubClass; 

})(window); 

답변

0

나는 변수 어쨌든 함수의 끝에서 범위를 벗어나 당신이 —을하지 꽤 확신한다. 물론, 누군가 객관적으로 이것을 실제로 테스트했다면, 어떠한 확인이나 논평도 환영 할 것입니다.

ps. 또한 도널드 크 누스 (Donald Knuth)의 말을 인용하자면 : premature optimization is the root of all evil. 당신이 사용한 속임수가 약간의 효과를 가졌다 고하더라도, 그럴 가치는 거의 없을 것입니다.

0

params = null로 설정하면 큰 차이는 없지만 나쁜 습관은 아닙니다.

here과 같은 도구를 사용하여 메모리 누수를 검색하거나 정리할 수 있습니다.

관련 문제