灵活的JavaScript

 

  • 不创建全局变量

 

 

/**
     * 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) {}
}

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值