0

我有这个代码:

var rect2 = new drawRect({
        h: 100,
        w: 100,
        x: 280,
        y: 20,
        colour: '8CB5CF',
        name: 'Office 2'
}

是否可以读取我传递给 drawRect 的属性?我的第一个想法是:

alert(rect2.h)

但这导致undefined,没想到它真的会起作用,但我不知道如何解决这个问题。

我对javascript相当陌生。谢谢。

编辑:对不起这里是drawRect:

    function drawRect(rectOptions){
        var ctx = document.getElementById('canvas').getContext('2d');
        ctx.fillStyle = rectOptions.colour;
        ctx.fillRect(rectOptions.x,rectOptions.y,rectOptions.h,rectOptions.w);
        ctx.font = '12px sans-serif';
        ctx.fillText(rectOptions.name, rectOptions.w + rectOptions.x, rectOptions.h     + rectOptions.y);
    }

这是完整代码:完整代码

4

2 回答 2

0

drawRect函数内部,您可以添加一行以将option属性添加到由drawRect.

function drawRect(rectOptions) {
  this.options  = rectOptions;
  //...
}

然后你可以做

var rect2 = new drawRect({ /* ... */ });
alert(rect2.options.h);

或者,您可以drawRect返回传递给它的选项。

function drawRect(rectOptions) {
  //...
  return rectOptions;
}

然后你可以做,就像你最初尝试的那样,

alert(rect2.h);
于 2013-01-22T02:54:05.957 回答
0
var rect2 = new drawRect({
        h: 100,
        w: 100,
        x: 280,
        y: 20,
        colour: '8CB5CF',
        name: 'Office 2'
})
 function drawRect(rectOptions){
        //your code
        return rectOptions;//you have to return the value 
    }

alert(rect2.h);//alerts 100

链接到 jsfiddle

于 2013-01-22T02:55:22.000 回答