https://github.com/mbostock/d3/blob/master/src/layout/hierarchy.js#L29
29号线上发生了什么?具体做法是:
if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
.call
value
调用三个参数的原因是什么?
value
被定义为一个带有一个参数的函数:function(d) { return d.size; }
。
对于.call
,第一个参数是this
的值,其余参数是要调用的函数的参数...因为value
只接受一个参数,为什么三个参数传递给.call
?