[: currentTime | date:'mm:ss' :] [: timeLeft | date:'mm:ss' :]

示例参考 - ES5

<script>
  /**
   * 支付方案
   * @param balance 余额
   * @constructor
   */
  function Payment(balance) {
    this.balance = balance;
    this.next = null;
  }

  /**
   * 设置下一个责任节点(下一个工位)
   * @param {Payment} payment
   * @return {*}
   */
  Payment.prototype.setNext = function (payment) {
    return this.next = payment;
  }

  /**
   * 是否可以支付
   * @param {number} amount
   * @return {boolean}
   */
  Payment.prototype.canPay = function (amount) {
    return this.balance >= amount;
  }

  /**
   * 支付
   * @param {number} amount 支付的数额
   * @return {boolean}
   */
  Payment.prototype.pay = function (amount) {
    // 如果余额不足
    if (!this.canPay(amount)) {
      console.log(this.balance);

      // 如果没有下一个支付方式,直接返回false
      if (!this.next)
        return false;

      // 如果有下一个支付方式,就执行并返回执行结果
      return this.next.pay(amount);
    }

    // 如果余额充足就减去消费数额
    this.balance -= amount;
    console.log(this.balance);
  }

  var subvention = new Payment(20);
  var scholarship = new Payment(10);
  var recharged = new Payment(50);

  var amount = 30;

  recharged
    .setNext(subvention)
    .setNext(scholarship);

  recharged.pay(amount);
</script>

示例参考 - ES6

<script>
  /**
   * 支付方案
   * @param balance 余额
   * @constructor
   */
  class Payment {
    constructor(balance) {
      this.balance = balance;
      this.next = null;
    }

    /**
     * 设置下一个责任节点(下一个工位)
     * @param {Payment} payment
     * @return {*}
     */
    setNext(payment) {
      return this.next = payment;
    }

    /**
     * 是否可以支付
     * @param {number} amount
     * @return {boolean}
     */
    canPay(amount) {
      return this.balance >= amount;
    }

    /**
     * 支付
     * @param {number} amount 支付的数额
     * @return {boolean}
     */
    pay(amount) {
      // 如果余额不足
      if (!this.canPay(amount)) {
        console.log(this.balance);

        // 如果没有下一个支付方式,直接返回false
        if (!this.next)
          return false;

        // 如果有下一个支付方式,就执行并返回执行结果
        return this.next.pay(amount);
      }

      // 如果余额充足就减去消费数额
      this.balance -= amount;
      console.log(this.balance);
    }
  }

  var subvention = new Payment(20);
  var scholarship = new Payment(10);
  var recharged = new Payment(50);

  var amount = 30;

  recharged
    .setNext(subvention)
    .setNext(scholarship);

  recharged.pay(amount);
</script>
登录后评论