我主业是编写C/C++,今天发现一个细节,对javascript的数组操作不能按C语言下的习惯。
假设一个结构体数组
shapes = new Array();
结构体这样定义。
var shape = function( wh, radius, style, angle ) {
this.radius = radius;
this.style = style;
this.angle = angle;
this.wh = wh;
}
对数组做如下操作后
shapes = new Array();
结构体这样定义。
var shape = function( wh, radius, style, angle ) {
this.radius = radius;
this.style = style;
this.angle = angle;
this.wh = wh;
}
对数组做如下操作后
var tempShape = shapes[i];
tempShape.angle += 3;
虽然改的是tempShape,但shapes[i]中的数据也是会被改掉的,这里与C语言的习惯不同,注意理解。
虽然改的是tempShape,但shapes[i]中的数据也是会被改掉的,这里与C语言的习惯不同,注意理解。