我正在使用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"});