code: function (id, ds) {
        this.ds = ds;
        this.errorData = [];
        var result = this._getMockOfDatatypeId(id);
        return {
          json: result,
          error: this.errorData
        };
      }
docs: 获取某个数据模型的 mock 数据
  @param {Number} id - 数据模型的 id
  @param {Array} ds - 数据模型的数据源, 包括所有数据模型
  其他:
  环的检测: 在深度遍历的时候, 如果遍历的路径上第二次出现自定义的数据类型, 则说明存在环
  每次深度遍历完再进行广度遍历的时候(即遍历上一个结点的兄弟结点), 需要将上一次(同层级的)深度遍历时增加的结点去除
  这里使用一个小技巧, 把数组的长度更改为上一次(同层级的)深度遍历时的值就可以