RequireJS的错误记录器

时间:2012-05-02 20:49:58

标签: javascript class requirejs

我正在使用RequireJS构建应用程序,我需要一个集中式记录器。这归结为类结构,但我将我的例子包括在内。子类如何调用父级的错误记录方法?

这是我的应用脚本:

define(['jquery', 'js/renderer', 'js/logger'], function($, Renderer, Logger) {
  var App = Class.extend({
    init: function(baseUrl) {
      this.log = new Logger();
      this.renderer = new Renderer();
    }
  });
  return App;
});

这是渲染器脚本:

define(['jquery'], function ($) {
  try() {
    var Renderer = Class.extend({
      init: function() {
        vor = {}; // bad script
      }
    });
    return Renderer;
  } catch(e) {
    [How to throw the error to App]
  }
});

将try / catch放在类定义中是否过于抽象?我应该只是把它放在指令附近吗?例如:

define(['jquery'], function ($) {
    var Renderer = Class.extend({
      init: function() {
        try() {
          vor = {}; // bad script
        } catch(e) {
           [How to throw the error to App]
        }
      }
    });
    return Renderer;
});

我正在探索的一个选项是将app类作为渲染器init的参数传递,但这是不好的做法吗?例如,更新应用脚本以使用:

this.renderer = new Renderer(this);

然后在渲染器脚本中我有这个:

....
init: function(app) {
   app.log.error({message:"My Error"});

0 个答案:

没有答案