JSFiddle - React, Tailwind, and code Playground

by Herbert CHAN

JavaScript

function Ball(array) {
    this.array = array; 
}

Ball.prototype.allArray = []; 
Ball.prototype.addArray = function() {
    this.allArray.push(12); 
}

Ball.prototype.changeArray = function() {
    var array = this.array; 
    var allArray = this.allArray; 
    
    for (var i = 0; i < allArray.length; i++) {
        array.push(allArray[i]); 
    }
    // Array.prototype.push.apply(array, allArray);
    alert(array.length); // 3 Expected
    alert(this.array.length); // 3, expected 2 Why 3? We just change array NOT this.array... 
}

var ball = new Ball([123, 198]); 
ball.addArray(); 
ball.changeArray();