Javascript 尝试使用iLife时出现未捕获类型错误
我是JavaScript新手,我试图理解函数的逻辑。以下是我尝试做的:Javascript 尝试使用iLife时出现未捕获类型错误,javascript,iife,Javascript,Iife,我是JavaScript新手,我试图理解函数的逻辑。以下是我尝试做的: var GetterSetter = (function () { var balance = 0.0; var getBalance = function () { return balance; }; var setBalance = function (amount) { if (amount > 0) { return b
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
使用
在函数结束时使用
在函数的末尾您的
GetterSetter
不作为setBalance
的方法存在
您需要在代码中设置函数。我为您提供了以下信息和示例:
代码
var GetterSetter = (function () {
var balance = 0.0;
return {
getBalance: function () {
return balance;
},
setBalance: function (amount) {
if (amount > 0) {
return balance = amount;
}
}
}
})();
您的
GetterSetter
不作为setBalance
的方法存在
您需要在代码中设置函数。我为您提供了以下信息和示例:
代码
var GetterSetter = (function () {
var balance = 0.0;
return {
getBalance: function () {
return balance;
},
setBalance: function (amount) {
if (amount > 0) {
return balance = amount;
}
}
}
})();
您的函数不返回任何内容。这就是为什么你们会得到错误,你们需要用函数作为方法返回一个对象。你们实际上可以定义真正的getter和setter,而不是使用方法。你们的函数什么也不返回。这就是为什么会出现错误。您需要返回一个带有函数作为方法的对象。您实际上可以定义真正的getter和setter,而不是使用方法。或者在ES6中,只需
return{getBalance,setBalance}
或者在ES6中,只需return{getBalance,setBalance}