これだとダメで

var histArray = new Array(256);
var histData = [histArray,histArray,histArray];
for(i = 0; i < 3; i++){
    for(j = 0; j < 256; j++){
        histData[i][j] = 0;
    }
}

こっちだとちゃんと初期化されるんですが、これはなぜでしょうか?

var histData = [histArray,histArray,histArray];
for(j = 0; j < 3; j++){
    histData[j] = new Array(256);
    for(i = 0; i < 256; i++){
        histData[j][i] = 0;
    }
}