Die akzeptierte Antwort, die IMO ausgelassen hat, ist, dass .call()
es sich um eine D3-API-Funktion handelt und nicht mit Function.prototype.call () zu verwechseln ist.
selection.call(function[, arguments…])
Ruft die angegebene Funktion genau einmal auf und übergibt diese Auswahl zusammen mit optionalen Argumenten. Gibt diese Auswahl zurück. Dies entspricht dem manuellen Aufrufen der Funktion, erleichtert jedoch die Verkettung von Methoden. So legen Sie beispielsweise mehrere Stile in einer wiederverwendbaren Funktion fest:
Sagen Sie jetzt:
d3.selectAll("div").call(name, "John", "Snow");
Dies entspricht in etwa:
name(d3.selectAll("div"), "John", "Snow");
Der einzige Unterschied besteht darin, dass selection.call immer die Auswahl und nicht den Rückgabewert der aufgerufenen Funktion name zurückgibt .
call()