2017-12-21 5 views
1

JavaScript 기반 게임을 작성할 때 일반적으로 GC 작업을 줄이기 위해 객체 풀링을 사용합니다. 이것은 일반적으로JavaScript 클래스가있는 풀링

constructor.apply(object, arguments); 

이 방법 : 기존 객체 예컨대을 생성자를 적용 포함, 생성자 함수는 새로운 객체를 생성하고 기존 개체를 '설정'모두 사용할 수 있습니다. (비슷한 다른 작업을하는 다른 풀링 시스템을 보았습니다.) 문제는 'class'키워드를 사용하여 생성 된 JavaScript 클래스 생성자가 'new'로만 호출 될 수 있다는 것입니다. 이는 위의 코드를 의미합니다. 더 이상 작동하지 않습니다.

제 질문은 '클래스'를 통해 만든 클래스와 풀링을 사용하는 실제적인 방법이 있습니까? 아니면 'class'를 포기하고 'class'키워드를 사용하지 않고 '수동으로'(수동으로) 클래스를 설정하는 것이 가장 좋은 옵션입니까?

답변

1

잘못된 것이고 혼동스러운 생성자를 다시 적용하는 대신 init 메서드에서 초기화 논리를 작성하고 생성자에서 this.init()을 호출하십시오.

개체를 다시 초기화하려면 obj.init()을 호출하면 누구나 이해할 수 있습니다.

class Foo { 
    constructor(...args) { 
     this.init(...args) 
    } 

    init(val) { 
     this.val = val 
    } 
} 

const f = new Foo(42) 
console.log(f.val) 
f.init(43) 
console.log(f.val)