how Variable assignment work in javascript?

class Node{
    constructor(val) {
        this.val = val;
        this.next = null;
    }
}

class SinglyLingkedList{
    constructor() {
        this.head = null;
        this.tail = null;
        this.length = 0;
    }

    push(val){
        var newNode = new Node(val)
        if (this.head == null) {
            this.head = newNode;
            this.tail = this.head;
        } else{
            this.tail.next = newNode;
            this.tail = newNode;
        }
        
        this.length++;
        return this
    }

    reverse(){
        var node = this.head;
        this.head.next = null;
        this.tail = this.head;
        return node;
    }
}

var list = new SinglyLingkedList()
list.push("1")
list.push("2")
list.push("3")
list.reverse()

I’m new at programming. I’m pretty confused with my variable assignment in the reverse method, especially at

        var node = this.head;
        this.head.next = null;
        this.tail = this.head;
        return node;

Why return node is affected by this.head.next null? is not like what I expected
its return

Node : {val: '1', next: null}

not

Node : {val: '1', next: Node}

I wanted to know why it happened?