我真的不知道该怎么称呼这个问题,也不知道我可以用谷歌搜索什么。我试图理解 D3.js 库的源代码,但由于语法对我来说是新的,我遇到了两个我根本无法理解的函数。
第一个是数字插值器:
function d3_interpolateNumber(a, b) {
b -= a = +a;
return function(t) { return a + b * t; };
}
这里的第二行发生了什么?我们从 的值中减去 的值b
,a
然后……嗯,你失去了我。这个语法是如何工作的?
让我感到困惑的另一件事是,我在其他地方也看到过,变量的右侧赋值由几个用逗号分隔的变量组成。如:
var i = d3.interpolators.length, f;
这是什么意思?这些片段取自https://github.com/mbostock/d3/blob/master/src/interpolate/number.js和 https://github.com/mbostock/d3/blob/master/src/interpolate/interpolate .js