2011-02-09 5 views
0

동일한 유형의 객체가 저장되는 트리가 생성되는 배열 ("children")이 포함 된 사용자 정의 객체가 있습니다. 이제자바 스크립트에서 트리 탐색 방법을 사용하여 객체 확장

function CustomObject(){ 
    if (this instanceof Topic) { 
    this.text = "Test"; 
    this.children = []; 
    } else 
     return new CustomObject(); } 

, 나는 깊이에서 그 나무의 모든 요소에 인수로 제공하는 또 다른 기능을 수행 할이 객체에 "FORALL"방법을 추가하고 싶습니다 :
의 그것처럼 보이는 가정 해 봅시다 - 첫번째 패션. 가장 좋은 방법은 무엇입니까?

답변

1

이와 비슷한?

CustomObject.prototype.forAll = function(func) { 
    // process this object first 
    func(this); 

    // then process children 
    for (var i = 0; i < this.children.length; i++) 
    this.children[i].forAll(func); 
} 
+0

불행히도 그럴 것 같지 않습니다. 첫 번째 요소에서만 실행 된 것으로 보이고 오류가 발생하여 종료됩니다. 여기에서 시도해 볼 수 있습니다 : http://dl.dropbox.com/u/118505/psychojs/p.html –

+0

@Piotr : 오류가있는 것 같습니다 :'map.centralTopic.forAll (get_text())'- 'get_text()'는 즉시 함수를 호출하지만 함수 객체를'forAll'에 전달해야하므로'map.centralTopic.forAll (get_text)'를 수행해야합니다. – casablanca

+0

예! 이제 알겠다! 감사. –

관련 문제