在d3.layout.force的源代碼,管線158,有這種代碼理解d3.js源:停留在function.call()和 「= +」
force.charge = function(x) {
if (!arguments.length) return charge;
charge = typeof x === "function" ? x : +x;
return force;
};
現在,如果轉到行225,你會看到
charges = [];
if (typeof charge === "function") {
for (i = 0; i < n; ++i) {
charges[i] = +charge.call(this, nodes[i], i);
}
} else {
for (i = 0; i < n; ++i) {
charges[i] = charge;
}
}
什麼我不明白這裏是我新的JavaScript和無法理解WHA行
charges[i] = +charge.call(this, nodes[i], i);
這裏正在進行。
據我瞭解,電荷只需要1個參數(x
)。這裏傳遞「this
」以給出當前對象的上下文,但其他兩個呢? 「nodes[i]
」和「i
」中的哪一個被視爲「x
」?
什麼是「= +
」在這裏做?
還有一個「充電」功能的地方,我想。回答 – Pointy