オブジェクト内のコールバック メソッドが存在することを確認する関数があります。現在、Closure Compiler はメソッド (onClickDisplay および onCloseHide) の名前を変更しているため、makeCallbacks() のすべてのチェックが失敗します。
Closure Compiler にメソッド (onClickDisplay および onCloseHide) の名前を変更しないように指示する方法はありますか、または callbackNames() のメソッド名の名前も変更するように Compiler に指示する方法はありますか?
makeCallbacks = function(tobject, methodNames) {
var callbacks = {};
methodNames.each(function(methodName) {
if (!tobject[methodName]) {
throw new Error(methodName + ' missing from ' + tobject.toString());
}
callbacks[methodName] = tobject[methodName].bind(tobject);
});
return callbacks;
};
FeedbackController = Class.create({
initialize: function(id, item) {
this.callbacks = makeCallbacks(this, this.callbackNames());
},
observeElements: function() {
$$(this.id + ' .closeme').invoke('observe', 'click', this.callbacks.onCloseHide);
},
callbackNames: function() {
return ['onClickDisplay', 'onCloseHide'];
},
onClickDisplay: function(e) {
// do something
},
onCloseHide: function(e) {
// do something
}
});