我有一组函数,它们是相互链接的。我想看看在每个函数执行过程中,变量的值是多少。我不想使用console.log。
function applydiscountA(itemPrice){
itemPrice = itemPrice*0.95;
applydiscountB(itemPrice);
}
function applydiscountB(itemPrice){
itemPrice = itemPrice*0.85;
applydiscountC(itemPrice);
}
function applydiscountC(itemPrice){
itemPrice = itemPrice*0.85;
console.trace(itemPrice);
}
let itemPrice = 2000;
applydiscountA(itemPrice);
在javascript中有没有使用console.trace()在函数调用期间如何更新值的方法。
发布于 2020-12-29 17:23:15
不,一旦变量超出作用域,你就不能访问它的值,trace
也不能。每个discountX
函数都有自己的itemPrice
变量,并且只能在该函数范围内访问。
但是,如果您的用例是对原始价格应用多个折扣,并且您希望跟踪所有中间结果,则不要使用此模式,而是循环百分比,如下所示:
const discounts = [
{ name: "A", pct: 0.95 },
{ name: "B", pct: 0.85 },
{ name: "C", pct: 0.85 }
];
function applyDiscounts(itemPrice, discounts) {
return discounts.map(function({name, pct}) {
itemPrice *= pct;
return { name, itemPrice };
});
}
let itemPrice = 2000;
let priceEvolution = applyDiscounts(itemPrice, discounts);
console.log("original price", itemPrice);
console.log(priceEvolution);
console.log("final price", priceEvolution[priceEvolution.length-1].itemPrice);
https://stackoverflow.com/questions/65496000
复制相似问题