我有一个抛出 JavaScript 异常的页面:
raphael.js 中第 5144 行第 13 列的未处理异常 0x80048270 - JavaScript 运行时错误:Arg:分数超出范围(允许 0 到 1)
我正在使用 Raphaël 的 2.1.0 版本,并且出于调试目的使用未压缩的 JavaScript 文件而不是最小化的文件(即从http://github.com/DmitryBaranovskiy/raphael/raw/master/raphael.js复制的文件)
如果我闯入调试器(我使用的是 Visual Studio 2012),我发现变量“不透明度”的值为 -0.23185589076263113,而它应该在 0 和 1 之间。但我看不出它是如何变成负数的。这是代码(来自 raphael.js,即它是库代码而不是我的代码)
opacity = mmin(mmax(opacity, 0), 1);
params["stroke-width"] == null && (width = a["stroke-width"]);
params["stroke-width"] && (stroke.weight = width);
width && width < 1 && (opacity *= width) && (stroke.weight = 1);
stroke.opacity = opacity;
当第一行明确将其限制为 [0, 1] 时,如何在此代码的最后一行出现 opacity == -0.23185589076263113?
(注意 raphael.js 中的 mmmax 是 math.max 而 mmin 是 math.min。)