你知道如何让它发挥作用吗?
const TAX_RATE = 0.08;
var purchase_amount = 10;
function addTax(amt) {
amt += amt * TAX_RATE;
}
addTax( purchase_amount );
console.log( purchase_amount );
答案 0 :(得分:1)
在amt
功能中重新分配addTax
并不会影响其中的任何内容,因此您需要返回新值,并在呼叫时将其分配给purchase_amount
功能。
const TAX_RATE = 0.08;
let purchase_amount = 10;
function addTax(amt) {
return amt + amt * TAX_RATE;
}
purchase_amount = addTax( purchase_amount );
console.log( purchase_amount );

答案 1 :(得分:1)
从函数返回值。amt
成为函数内的局部变量
const TAX_RATE = 0.08;
var purchase_amount = 10;
function addTax(amt) {
amt += amt * TAX_RATE;
return amt;
}
var newAmt = addTax(purchase_amount);
console.log(newAmt);

答案 2 :(得分:1)
Javascript不通过引用传递参数,因此您必须从函数返回所需的值,或将对象引用作为值传递给函数。检查Pass Variables by Reference in Javascript。
答案 3 :(得分:1)
虽然其他答案是正确的,但JavaScript是按值传递,而不是按引用传递这对于对象并非如此>
我不确定为什么 JavaScript会这样做(其他人可能能够更好地解释确切的推理)但是当你将一个对象传递给一个函数时,原始对象会被修改功能。
因此,如果您这样做,这将无需设置任何外部值即可。在使用自定义类对象的情况下,这将特别有用。
function addTax( obj ) {
if ( typeof obj['tax_rate'] == "undefined" ) return;
obj['cost'] = obj['cost'] + ( obj['cost'] * obj['tax_rate'] );
delete obj['tax_rate'];
}
var myTaxObject = {
cost: 10,
tax_rate: 0.08
}
addTax( myTaxObject );
console.log( myTaxObject );
深思熟虑。