我正在做一些与D3.js的工作,并且正在调整一个内置映射投影的版本。我期待通过源代码,并发现低于其采用了语法,我不熟悉的功能定义:奇怪的JavaScript语法,看起来像一个Python元组
function albersUsa(coordinates) {
var x = coordinates[0], y = coordinates[1];
point = null;
(lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
return point;
}
具体如何被(lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
评估?
如果您需要更多的背景下,这种例子发生在D3源,它可以在这里找到的3257行:https://github.com/mbostock/d3/blob/master/d3.js
特别注意''''在函数调用里面设置,不返回。 –
这是不正确的。每个if语句不仅要评估点,还要评估“lower48point”的结果。 – Langdon
@LarsKotthoff是的,虽然看着那个代码我不知道它是如何发生的。这段代码让我更害怕d3。 – Pointy