Javascript JS newb:我的函数什么都不做

Javascript JS newb:我的函数什么都不做,javascript,function,Javascript,Function,你知道我怎样才能让它工作吗 const TAX_RATE = 0.08; var purchase_amount = 10; function addTax(amt) { amt += amt * TAX_RATE; } addTax( purchase_amount ); console.log( purchase_amount ); 在addTax函数中重新分配amt不会影响函数之外的任何内容,因此您需要返回新值,并在调用函数时将其分配给purchase\u amount c

你知道我怎样才能让它工作吗

const TAX_RATE = 0.08;

var purchase_amount = 10;

function addTax(amt) {
  amt += amt * TAX_RATE;
}

addTax( purchase_amount );

console.log( purchase_amount );

addTax
函数中重新分配
amt
不会影响函数之外的任何内容,因此您需要返回新值,并在调用函数时将其分配给
purchase\u amount

const TAX\u RATE=0.08;
购买金额=10;
功能附加税(金额){
返回金额+金额*税率;
}
采购金额=增值税(采购金额);

控制台日志(采购金额)
addTax
函数中重新分配
amt
不会影响函数之外的任何内容,因此您需要返回新值,并在调用函数时将其分配给
purchase\u amount

const TAX\u RATE=0.08;
购买金额=10;
功能附加税(金额){
返回金额+金额*税率;
}
采购金额=增值税(采购金额);

控制台日志(采购金额)从函数返回值。
amt
仅成为函数内部的局部变量

const TAX\u RATE=0.08;
var购买金额=10;
功能附加税(金额){
金额+=金额*税率;
返回金额;
}
var newAmt=增值税(采购金额);

控制台日志(newAmt)从函数返回值。
amt
仅成为函数内部的局部变量

const TAX\u RATE=0.08;
var购买金额=10;
功能附加税(金额){
金额+=金额*税率;
返回金额;
}
var newAmt=增值税(采购金额);

控制台日志(newAmt)Javascript不通过引用传递参数,因此必须从函数返回所需的值,或者将对象引用作为值传递给函数。选中。

Javascript不会通过引用传递参数,因此必须从函数返回所需的值,或者将对象引用作为值传递给函数。检查。

当其他答案正确时,JavaScript是按值传递的,而不是按引用传递的。对于对象来说,情况并非如此

我不确定JavaScript为什么会这样做(其他人可能能够更好地解释确切的推理),但当您将对象传递到函数中时,原始对象会在函数中被修改

因此,如果您要这样做,这将不必设置任何外部值。这在使用自定义类对象的情况下尤其有用

功能添加税(obj){
如果(obj[‘税率’]=“未定义”)申报表的类型;
obj['cost']=obj['cost']+(obj['cost']*obj['tax_rate']);
删除obj[‘税率’];
}
var myTaxObject={
费用:10,
税率:0.08
}
addTax(myTaxObject);

console.log(myTaxObject)虽然其他答案是正确的,但JavaScript是按值传递的,而不是按引用传递的。对于对象来说,情况并非如此

我不确定JavaScript为什么会这样做(其他人可能能够更好地解释确切的推理),但当您将对象传递到函数中时,原始对象会在函数中被修改

因此,如果您要这样做,这将不必设置任何外部值。这在使用自定义类对象的情况下尤其有用

功能添加税(obj){
如果(obj[‘税率’]=“未定义”)申报表的类型;
obj['cost']=obj['cost']+(obj['cost']*obj['tax_rate']);
删除obj[‘税率’];
}
var myTaxObject={
费用:10,
税率:0.08
}
addTax(myTaxObject);
console.log(myTaxObject)