javascriptにおける4次元配列についての質問です。以下のコードは動作します。

var dimension4 = {
  map: [[[['4th dimension']]]],
  put: function() {
    console.log(this.map[0][0][0][0]);
  }
};

dimension4.put();

ですが以下のコードは動作しません。

var dimension4 =
 {
    map: [[[[]]]],
    ini: function()
    {
        var i, j, m, n;
        for (i = 0; i<8; i++) { for (j = 0; j<8; j++) {
                for (m = 0; m<8; m++) { for (n = 0; n<8; n++) {
                        this.map[i][j][m][n] = '0';
                }}
        }}
        return this.map;
    }
 };

 dimension4.ini();

テスト環境は firefox( fire-bug ) です。
TypeError: this.map[i][j][m] is undefined が出力されます。何の問題もない初期化ルーチンのように私には見えます。どこに問題があるのでしょうかさっぱりわかりません。宜しくお願いします。