功能如下:
function desenharRetangulo(x, y, w, h) {
var ParametrosRetangulo = {
texto: "",
transparencia: 1,
corRetangulo: "",
bordaRetanguloCor: "",
corFonte: "",
tamanhoFonte: 12,
retanguloLineWidth: 6,
}
ctx.strokeStyle = ParametrosRetangulo.bordaRetanguloCor;
ctx.lineWidth = ParametrosRetangulo.retanguloLineWidth;
ctx.globalAlpha = ParametrosRetangulo.transparencia;
ctx.fillStyle = ParametrosRetangulo.corRetangulo;
ctx.fillRect(x, y, w, h);
ctx.strokeRect(
x -= ParametrosRetangulo.retanguloLineWidth / 2,
y -= ParametrosRetangulo.retanguloLineWidth / 2,
w += ParametrosRetangulo.retanguloLineWidth,
h += ParametrosRetangulo.retanguloLineWidth
);
ctx.globalAlpha = 1.0;
ctx.textBaseline = "middle";
ctx.fillStyle = ParametrosRetangulo.corFonte;
ctx.font = ParametrosRetangulo.tamanhoFonte + "px" + " " + "Courier New";
textX = x + w / 2 - ctx.measureText(ParametrosRetangulo.texto).width / 2;
textY = y + h / 2;
ctx.fillText(ParametrosRetangulo.texto, textX, textY);
}
我想知道如何访问变量" ParametrosRetangulo"当我调用" desenharRetangulo"并改变其属性的值。其他方法的功能
感谢您的聆听
答案 0 :(得分:1)
我相信您希望将ParametrosRetangulo
作为您的函数的可选参数。
因此,如果您想在函数外部更改其值,您只需要覆盖默认参数
function desenharRetangulo(x, y, w, h, ParametrosRetangulo = {
texto: "",
transparencia: 1,
corRetangulo: "",
bordaRetanguloCor: "",
corFonte: "",
tamanhoFonte: 12,
retanguloLineWidth: 6,
}) {
ctx.strokeStyle = ParametrosRetangulo.bordaRetanguloCor;
ctx.lineWidth = ParametrosRetangulo.retanguloLineWidth;
ctx.globalAlpha = ParametrosRetangulo.transparencia;
ctx.fillStyle = ParametrosRetangulo.corRetangulo;
ctx.fillRect(x, y, w, h);
ctx.strokeRect(
x -= ParametrosRetangulo.retanguloLineWidth / 2,
y -= ParametrosRetangulo.retanguloLineWidth / 2,
w += ParametrosRetangulo.retanguloLineWidth,
h += ParametrosRetangulo.retanguloLineWidth
);
ctx.globalAlpha = 1.0;
ctx.textBaseline = "middle";
ctx.fillStyle = ParametrosRetangulo.corFonte;
ctx.font = ParametrosRetangulo.tamanhoFonte + "px" + " " + "Courier New";
textX = x + w / 2 - ctx.measureText(ParametrosRetangulo.texto).width / 2;
textY = y + h / 2;
ctx.fillText(ParametrosRetangulo.texto, textX, textY);
}