Mir ist schon klar wofür bind() verwendet wird, aber ich bezog mich auf den Quelltext des OP. Da ist das bind an dieser Stelle unnötig und erzeugt lediglich eine zusätzliche Schicht und ich fragte mich welchen Zweck er damit verfolgt. Die Erklärung war nicht erleuchtend, denn das bind hat an dieser Stelle keinerlei Auswirkung auf die Funktionalität nur negative auf die Geschwindigkeit.
Der Quelltext in meinem ersten Post war nur dazu gedacht, das Problem zu verdeutlichen. Der eigentliche Code in meiner Anwendung hat um einiges mehr Funktionalität und die Bindings sind teilweise nötig.
Das ist nur dort nötig, wo ein Kontextwechsel stattfindet. Also bei z.b. Timer oder Eventfunktionen. Du tust es aber in deinem Beispiel innerhalb des Objektes, dort ist kein bind() nötig.
Und ich programmiere wirklich nicht auf Nanosekunden.
Da du hier von nodes sprichst, vermute ich mal du arbeitest mit dem DOM. Daneben kommen Schleifen bzw. Arrays zum Einsatz, also u.U. viele Nodes.
Im firefox läuft die Variante mit bind 8x langsamer als ohne, d.h. du bist insgesamt betrachtet schnell im Zehntelsekundenbereich.
Und ncoh mal, weil das offensichtlich nicht klar ist, mir geht es nicht um bind() an sich, sondern um dieses Konstrukt:
initialize: function(parent, no) {
this.addNode = this.addNode.bind(this);
this.printout = this.printout.bind(this);
Das einzige was hier passiert, ist das die Funktion um den Faktor 8 gebremst wird ohne irgendeinen Nutzen davon zu haben.
Struppi.