Kill tween and put another tween to the same target

Hello everyone
I get stuck by stopping the tween applied to a sprite and trying to applied another tween to the same sprite.
Here is a simplyfied example of my problem (using a example in phaser.io)

var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    backgroundColor: '#2d2d2d',
    parent: 'phaser-example',
    scene: {
        preload: preload,
        create: create
    }
};

var game = new Phaser.Game(config);

function preload ()
{
    this.load.image('block', 'assets/sprites/block.png');
}

function create ()
{
    var image = this.add.image(100, 300, 'block');

    var tween = this.tweens.add({
        targets: image,
        x: 700,
        delay: 1000,
        duration: 6000,
        ease: 'Power2'
    });

    this.input.on('pointerdown', function () {

        tween.stop();//tween.destroy() doesn't work
        tween = this.tweens.add({
            targets: image,
            y:0,
            delay: 1000,
            duration: 6000,
            ease: 'Power2'

        });
        

    });
}

the first tween works well, but the game freezes when clicking on mouse button, failling to apply the second tween.
Does someone have an idea about how to do ?

It functions for the example if I put

this.input.on('pointerdown', function () {....}, this);

but it is not exactely the probleme in my program
I try to put another example

I have isolated my problem, sorry for the delaying.
Here is it

class sceneA extends Phaser.Scene {
    constructor() {
                    super({key:"sceneA"});
                  }
    preload(){
        this.load.image('block', 'assets/button1.png');
    }
    create(){
        
        this.block = new Block(this,100,300);
       
        this.input.once(Phaser.Input.Events.POINTER_DOWN, function () {
  
         this.block.changeMove();
    
        },this);
        
    
        this.add.text(20,20,"Example!");
  
   
    }

  }

  class Block extends Phaser.GameObjects.Sprite{
    constructor(scene,posx,posy){
    
      super(scene, posx, posy,"block");
      scene.add.existing(this);

      this.tween = scene.tweens.add({
        targets: this,
        x: 600,
        paused: false,
        yoyo: true,
        repeat: -1
      });
    
    }

    changeMove(){
        this.tween.stop();
        this.tween = scene.tweens.add({
                                        targets: this,
                                        y: 0,
                                        paused: false,
                                        yoyo: true,
                                        repeat: -1
                                    });

    }
  }


var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    backgroundColor: '#2d2d2d',
    parent: 'phaser-example',
    scene: [sceneA]
};

var game = new Phaser.Game(config);

the first tween works well, but when pressing mouse button, it freezes
Does someone knows how to fix it ?

found it.
In constructor of Block, if I put

this.scene = scene

and in the method changeMove

this.tween = this.scene.tweens.add({});

it works
The post is solved.

Glad you solved it, but it’s worth adding that you do not need:

this.scene = scene;

In your Block Game Object, because it extends Sprite and the call to super() will do that automatically. That line of code is basically just repeating something that has already happened.

Thank you, rich, to point that