1

以下のコードをクロムで実行すると、

「Uncaught 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実際に を見つけようとしているため、 は定義されていませんshape.details[0]。その配列項目として定義detailすると修正されます。

http://jsfiddle.net/EaPr7/

于 2013-01-30T06:06:40.870 に答える
0

detailは実際には定義されていません。これを試して:

detail = shape.details[0];

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