- 不创建全局变量
/** * Creates confirmation dialog. Handles callback on confirmation or deny * @param conf Dialog configuration * @param onConfirmCallback * @param onDenyCallback */ function createConfirmationDialog(conf, onConfirmCallback, onDenyCallback) { var confirmationDialogWidget = new ConfirmationDialogWidget(conf); // On confirm trigger handler confirmationDialogWidget.vent.on('yesEventTriggered', function () { if (onConfirmCallback) { onConfirmCallback.call(); } // destroy the dialog confirmationDialogWidget.destroy(); me.confirmationDialogWidget = null; me.close(); }); // On deny trigger handler confirmationDialogWidget.vent.on('noEventTriggered', function () { if (onDenyCallback) { onDenyCallback.call(); } // destroy the dialog confirmationDialogWidget.destroy(); me.confirmationDialogWidget = null; }); // creates the dialog confirmationDialogWidget.build(); $(".title.slipstream-content-title").prepend("<div class='icon_warning'/>"); // store the copy me.confirmationDialogWidget = confirmationDialogWidget; }
这段代码应该为私有函数。
var CreateConfirmationDialog = function (conf, onConfirmCallback, onDenyCallback)
调用也有所改变:
createConfirmationDialog(conf, $.proxy(this.saveAsPolicyYesButtonCallback, this),$.proxy(self.saveAsPolicyNoButtonCallback, this));
改为:
var ccd = new CreateConfirmationDialog(conf, $.proxy(this.saveAsPolicyYesButtonCallback, this),$.proxy(self.saveAsPolicyNoButtonCallback, this));
- 原型写法
ConfirmationDialog.prototype = { create : function(conf, onConfirmCallback, onDenyCallback) {} }
- 面向对象写法
var CreateConfirmationDialog = function (conf, onConfirmCallback, onDenyCallback) {
var conf = {
title: 'Changes Not Saved',
question: "Leaving this form will discard unsaved changes. Are you sure you want to navigate away from this form?",
yesButtonLabel: 'Yes',
noButtonLabel: 'Cancel',
yesButtonTrigger: 'yesEventTriggered',
noButtonTrigger: 'noEventTriggered',
kind: 'error'
};
function saveAsPolicyYesButtonCallback () {
}
function saveAsPolicyNoButtonCallback() {
}
}
CreateConfirmationDialog.prototype = {
create : function(conf, onConfirmCallback, onDenyCallback) {}
}