微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 console.trace 查看每个链式函数的功能?

如何解决如何使用 console.trace 查看每个链式函数的功能?

我有一组函数,它们相互关联。我想看看在每个函数执行期间变量的值是多少。我不想使用 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() 查看在函数调用期间值是如何更新的。

解决方法

不,一旦变量超出范围,您将无法访问其值,也不能使用 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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。