Javascript变量没有写

时间:2011-10-27 08:26:15

标签: javascript

我在javascript中使用一个简单的函数有一个奇怪的行为。我用矩阵写,但当我再次阅读时,我看不到变化。有人可以解释一下为什么吗? 这是代码:

this.map = [
    '## ### ##',
    '#   #   #',
    '# # . # #',
    '#  ## # #',
    '##  #   #',
    '#*# ## ##',
    '    ##   ',
    '#########'
];
this.check_collision = function ( x, y ) { 
    var l = Math.floor ( y / this.tile_size );
    var c = Math.floor ( x / this.tile_size );

    if ( this.map[ l ] != undefined ) { 
        if ( this.map[ l ][ c ] != undefined ) { 
            if ( this.map[ l ][ c ] == '#' ) { 
                return true;
            }   
            else if ( this.map[ l ][ c ] == '.' || this.map[ l ][ c ] == '*' ) { 
                this.map[ l ][ c ] = ' ';
                console.debug ( "'" + this.map[ l ][ c ] + "'" );
            }   
        }   
    }   
    return false;
};  

console.debug()打印'。'或'*',但我写了字符''上面的行

1 个答案:

答案 0 :(得分:1)

忽略赋值的原因是字符串是不可变的。您无法更改字符串的任何部分。

根据您的设计的其余部分,将this.map转换为数组数组可能更有意义。