使用RequireJS进行递归映射

时间:2013-08-28 20:59:30

标签: javascript requirejs requirejs-define

我正在使用requireJS作为我的Web应用程序,我对如何使用requireJS构建同一对象的递归映射感到困惑。例如,我的对象被称为“section”,我想在每个对象下使用相同的对象创建一个子对象:

Section
  > Section
    > Section
        > (etc...)

以下是section.js的内容:

define(['jquery'], function($) { 
  children = [];  

  function init() {
    require(['jquery', 'section'], function($, section) {
      children.push(section.init(mediator, this));
    });

    return children;
  }

  return {
    init: init
  }
}

这导致了自我引用的混乱。我不知道如何为新的子节创建一个新的节实例。

1 个答案:

答案 0 :(得分:0)

这可能是在不更改RequireJS部件的情况下完成的。是否创建了对自我的引用,类似于window.self

function Section() {
    this.children = [];
}
var section = new Section();
section.children.push(section);

如果每个Section都有一个子节点是新节,除非它是按需生成的,否则代码将循环无限地构建节之后的节。