比如有以下结构:
typedef struct _position
{
byte x;
byte y;
} CPOSITION;
typedef struct _move
{
short id;
CPOSITION from;
CPOSITION to;
int score;
} CMOVE;用JS应怎样写?
typedef struct _position
{
byte x;
byte y;
} CPOSITION;
typedef struct _move
{
short id;
CPOSITION from;
CPOSITION to;
int score;
} CMOVE;用JS应怎样写?
var pos = {x: 1, y: 2};
var move = {id: 1, from: {x: 1, y: 2}, to: {x: 1, y: 3}, score: 15};js比较灵活,直接给对象的属性赋值就能添加一个新的属性(也可以叫字段)。
这个move 能直接push到数组吗?比如可不可以这样:
var movelist=[];
movelist.push(move);
var movelist=[];
var j="";
var mp={from:{x:10,y:9},to:{x:5,y:4}};
for (var v=0;v<=10;v++)
{ mp.from.x=v+"sss";
mp.from.y=v+"kkk";
mp.to.x=v+"jjj";
mp.to.y=v+"ttt";
movelist.push(mp);
}
for (var v=0;v<=10;v++)
{
j=j+movelist[v].from.x +"_"+movelist[v].from.y+"_"+movelist[v].to.x+"_"+movelist[v].to.y+"\n"; }
alert(j);而这样写就可以了!var movelist=[];
var j="";
var mp="";
var fromx,fromy,tox,toy;
for (var v=0;v<=10;v++)
{ fromx=v+"sss";
fromy=v+"kkk";
tox=v+"jjj";
toy=v+"ttt";
mp={"from":{"x":fromx,"y":fromy},"to":{"x":tox,"y":toy}};
movelist.push(mp);
}
for (var v=0;v<=10;v++)
{
j=j+movelist[v].from.x +"_"+movelist[v].from.y+"_"+movelist[v].to.x+"_"+movelist[v].to.y+"\n"; }
alert(j);
mp = new Object();
mp.from = new Object();
mp.from.x = fromx;
....构造了一个对象第一种情况只构造了一个对象,其他都是操作这个对象,赋值不过是引用;
第二种情况才是构造了十个对象。