gpt4 book ai didi

javascript - 如何不传递参数并仍然使函数工作?

转载 作者:搜寻专家 更新时间:2023-11-01 05:06:04 24 4
gpt4 key购买 nike

function drawLine(ctx, sX, sY, eX, eY, sRGB, fRGB, lWidth, capStyle)
{
ctx.beginPath();
ctx.moveTo(sX, sY);
ctx.lineTo(eX, eY);
ctx.lineWidth = lWidth||5;
ctx.strokeStyle = 'rgb(49, 129, 48)';
ctx.lineCap = 'round';
ctx.stroke();
ctx.closePath();
}

然后我想这样调用函数:

drawLine(ctx, 50, 50, 100, 100, someStrokeStyle, someFillStyle, someCapStyle);

如您所见,我跳过了 lWidth 参数。我希望该函数仍然有效,即使 lWidth 未作为参数传递。我将如何做到这一点? Atm,它可能认为 someCapStylelwidth

最佳答案

当你有大量的参数要像你一样传递给一个函数时,使用一个对象:

function foo({param1: val1, parma2: val2}) {}

在那种情况下,您将不会依赖于参数的数量和它们被表示的顺序。

所以你可以重写你的函数:

 function drawLine(drawObj)
{
ctx.beginPath();
ctx.moveTo(drawObj.sX, drawObj.sY);
ctx.lineTo(drawObj.eX, drawObj.eY);
ctx.lineWidth = drawObj.lWidth||5;
ctx.strokeStyle = drawObj.sRGB;
ctx.lineCap = drawObj.capStyle;
ctx.stroke();
ctx.closePath();
}

关于javascript - 如何不传递参数并仍然使函数工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15497686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com