如何解决如何使用 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 举报,一经查实,本站将立刻删除。