d3.layout.force のソース コードの 158 行目に、次のコードがあります。
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;
}
}
ここでわからなかったのは次の行です
charges[i] = +charge.call(this, nodes[i], i);
私は JavaScript が初めてで、ここで何が起こっているのか理解できません。
私が理解している限り、料金は引数を1つしか取りません( x
)。ここで " this
" は現在のオブジェクトのコンテキストを与えるために渡されますが、他の 2 つについてはどうでしょうか? nodes[i]
「 」と「 」i
のどちらを「 」としx
ますか?
また、「= +
」はここで何をしているのですか?