尝试使用IIFE时未捕获的类型错误
问题描述:
我是JavaScript新手,我试图理解函数的逻辑。以下是我想要做的:尝试使用IIFE时未捕获的类型错误
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
答
您GetterSetter
不存在为setBalance
的方法结束。
您需要在代码中设置该功能。我已经提供和示例为您提供:
代码
var GetterSetter = (function() {
var balance = 0.0;
return {
getBalance: function() {
return balance;
},
setBalance: function (amount) {
if (amount > 0) {
return balance = amount;
}
}
}
})();
答
使用
return {
getBalance:getBalance,
setBalance:setBalance
}
在功能
+4
或者在ES6中,只需'return {getBalance,setBalance}' – somethinghere
你的函数返回** **什么。这就是为什么你得到错误 – hindmost
你需要返回一个对象的功能作为方法。 – evolutionxbox
您实际上可以定义真正的getter和setter,而不是使用方法。 – evolutionxbox