尝试使用IIFE时未捕获TypeError

时间:2017-07-03 14:25:48

标签: javascript 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);

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

  

未捕获的TypeError:无法读取属性' setBalance'未定义的       在GetterSetterScript.js:16

2 个答案:

答案 0 :(得分:4)

使用

return {
    getBalance:getBalance,
    setBalance:setBalance
}

在函数的末尾

答案 1 :(得分:2)

您的GetterSetter不存在setBalance的方法。

您需要在代码中设置该功能。我已经为您提供了示例:

<强>码

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