Is it possible to NOT use updated values in this method?

Apologies if I framed that question weird. Let me show you all what I mean. I am working with JavaScript classes currently.

class Car {
    constructor(name){
        this.distance = 0;
        this.fuel =  100;
        this.pedalPressure = 0;
        this.name =name;
    }

    changePedalPressure(vl){
        this.pedalPressure=this.pedalPressure+vl;
    }

    accelerate(){
        this.distance=this.distance+this.pedalPressure;
        
        this.fuel=this.fuel-Math.abs(this.distance);
    }

I have this “Car” class as well as a couple of methods paired with them. The problem is that when I call the accelerate() method/function more than once, it uses the updated values instead of using the starting ones. This is only a problem because I am trying to track the fuel attribute efficiently, and when the method uses the updated values of “this.distance” and “this.pedalPressure”, the fuel attribute gets messed up and is not accurate.

Say for example I use the starting values as defined above and call the accelerate function and lets have “pedalPressure” be 10.

const CAR = new Car("CAR")
CAR.changePedalPressure(10)
CAR.accelerate()

And log it out I would get something like:

Car {distance: 10, fuel: 90, pedalPressure: 10, name: 'CAR'}

Which is perfect, but if I call accelerate() once more after the first time and log it out I get this:

Car {distance: 20, fuel: 70, pedalPressure: 10, name: 'CAR'}

As you can see the fuel is not acting linear at all since it is using the updated values of “this.distance” and “this.pedalPressure”.

I would like to get something like this:

Car {distance: 20, fuel: 80, pedalPressure: 10, name: 'CAR'}

Is there any way I can fix it to where the fuel attribute is updated more linearly and/or doesn’t use the updated values?

I’ve tried loops, but I don’t know how I would craft it.

Apologies if this is weird. If anyone can help me with this or point me to the right page that would be amazing!