1

当我在 chrome 中运行下面的代码时,

我收到错误“未捕获的 ReferenceError:未定义详细信息”;

我尝试用名称汉堡包定义对象形状,然后创建汉堡包。

代码有什么问题

非常感谢。

function Hamburger(x,y,w,h){
    this.x = x;
    this.y = y;
    this.w = w;
    this.h = h;

}

var shape = {
    hamburgers: [],
};

function drawshape(x, y, w, h) {

alert(x+' '+y+' '+w+' '+h);

}

shape.details = 
[
    {   
        "detail" : 0,
        "hamburgers" : [{"x" : -290, "y" : -140,"w" : -290, "h" : -140}]

    }   
];

 i = 0;
shape.hamburgers.push(new Hamburger(detail.hamburgers[i].x, detail.hamburgers[i].y,detail.hamburgers[i].w,detail.hamburgers[i].h));

for(var i=0;i<shape.hamburgers.length;i++) {
        var hamburger = shape.hamburgers[i];
        var x = hamburger.x;
        var y = hamburger.y;
        var w = hamburger.w;
        var h = hamburger.h;
        drawshape(x, y, w, h);
    }
4

2 回答 2

0

detail确实没有定义。试试这个:

detail = shape.details[0];

i = 0;
shape.hamburgers.push(new Hamburger(detail.hamburgers[i].x, ...
于 2013-01-30T06:03:35.013 回答
0

detail未定义,因为您实际上是在尝试查找shape.details[0]. 定义detail为该数组项修复它。

http://jsfiddle.net/EaPr7/

于 2013-01-30T06:06:40.870 回答