尝试使用 IIFE 时未捕获的类型错误

Uncaught TypeError when try to use IIFE

我是 JavaScript 的新手,我正在尝试理解函数的逻辑。这是我尝试做的事情:

var GetterSetter = (function () {
    var balance = 0.0;


    var getBalance = function () {
        return balance;
    };
    var setBalance = function (amount) {
        if (amount > 0) {
           return balance = amount;
        }
      };
})();

GetterSetter.setBalance(120);

当我尝试 运行 时。我得到了:

Uncaught TypeError: Cannot read property 'setBalance' of undefined at GetterSetterScript.js:16

使用

return {
    getBalance:getBalance,
    setBalance:setBalance
}

函数结束

您的 GetterSetter 作为 setBalance 的方法不存在。

您需要在代码中设置函数。我已经为你提供了示例:

代码

var GetterSetter = (function () {
  var balance = 0.0;
  return {
    getBalance: function () {
      return balance;
    },
    setBalance: function (amount) {
      if (amount > 0) {
        return balance = amount;
      }
    }
  }
})();