I want to build a grid and I have 2 concepts: `Grid` which is consist of `Cell`.

Grid class is:

    var Grid = function (rows, columns, cellInit) {
        var canvas = create_canvas();
        this.context = canvas.getContext('2d');
        
        this.matrix = new Array(rows);
        for (var x = 0; x < rows; x+=1) {
            this.matrix[x] = new Array(columns);
            for (var y = 0; y < columns; y+=1) {
                this.matrix[x][y] = new Cell(x, y, cellInit(), this.context);
            }
        }
    };

Cell class is:

    var Cell = function (x, y, value, context) {
        this.x = x;
        this.y = y;
        this.rectX = s.cell_width * this.x + s.pad;
        this.rectY = s.cell_height * this.y + s.pad;
        this.value = value;
        this.context = context;
    };

Also I have `fill` method for `Cell`:

    Cell.prototype.fill = function(type) {
        this.context.fillStyle = s.colors[type];
        this.context.fillRect(this.rectX, this.rectY, s.rect_width, s.rect_height);
        return this;
    }

And actually I have 2 questions about this code:

 - Looks like that `Grid` and `Cell` should have parent-child relationship. Is it normal that I'm creating child objects at parent class?
 - I need somehow to give access to context var from `Cell` class without passing it via constructor. I had tried to play with prototypes but can't figure out how to do that.