Javascript 为什么调用函数时出错?
这是我的职责Javascript 为什么调用函数时出错?,javascript,Javascript,这是我的职责 const accounts = { a: 100, b: 0, c: 20 }; function getAccount() { let accountName = prompt("Enter an account name"); if (!accounts.hasOwnProperty(accountName)) { throw new Error(`No such account: ${accountName}`); } return a
const accounts = {
a: 100,
b: 0,
c: 20
};
function getAccount() {
let accountName = prompt("Enter an account name");
if (!accounts.hasOwnProperty(accountName)) {
throw new Error(`No such account: ${accountName}`);
}
return accountName;
};
function transfer(from, amount) {
if (accounts[from] < amount) return;
accounts[from] -= amount;
accounts[getAccount()] += amount;
}
我得到一个错误,没有定义“a”,但若我可以这样调用函数,它就会工作
transfer(getAccount(),20);
为什么这一个不适用于前一个?您需要一个字符串作为值,而不是一个未定义的变量
a
transfer('a', 20);
顺便说一句,我添加了一个异常处理
const accounts={a:100,b:0,c:20};
函数getAccount(){
让accountName=提示(“输入帐户名”);
如果(!accounts.hasOwnProperty(accountName)){
抛出新错误(`没有这样的帐户:${accountName}`);
}
返回帐户名;
}
职能转移(来源、金额){
如果(账户[来源]<金额)返回;
试一试{
账户[getAccount()]+=金额;
accounts[from]-=amount;//切换,如果没有帐户,则禁止减法
}捕获(e){
console.log(e.name+':'+e.message);
}
}
转让(“a”,20);
控制台日志(帐户)代码>称之为转账(accounts.a,20)代码>。您没有名为a
const a=getAccount()的变量;转让(a,20)代码>??但是getAccount()给出了“a”,为什么我不能在调用函数时直接输入“a”?因为getAccount返回您输入到提示符中的字符串值,这与代码本身中的实际变量名完全不同。在代码中没有变量被称为“a”。
transfer('a', 20);