我正在做一些與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