Richtige Bindung mit JS auf Android – die bind()-Funktion nachgebaut

Der Android-Browser bzw. die WebView ist nicht unbedingt so mächtig, wie man das gern hätte. Wie bereits hier angesprochen, sind einige Funktionen einfach nicht verfügbar. Oft habe ich mich schon gefragt, warum auf den Android-Devices kein Chrome läuft. Man kann nur hoffen, dass sich das in Zukunft, wie zum Beispiel hier berichtet wird, ändert!

Nun ist mir noch eine weitere Funktionslücke aufgefallen. Der Browser unterstützt noch nicht die aktuellste Variante des ECMAScript-Standards (ECMAScript5). Dadurch steht einem auch nicht die so nützliche bind()-Funktion zur Verfügung, welche es ermöglicht einer Funktion einen bestimmten Scope zuzuweisen. Eine genaue Beschreibung findet man im Mozilla Developer Network.

Aber auch hierfür gibt es eine Lösung: selber machen 😉
Für die bind()-Funktion ist das recht simpel. Man muss lediglich folgenden Code integrieren:

  1. <script>
  2. Function.prototype.bind = function(scope) {
  3.   var _function = this;
  4.   return function() {
  5.     return _function.apply(scope, arguments);
  6.   }
  7. };
  8. </script>

 

Danach kann man bind() ganz normal benutzen!
Für andere Funktionen kann man das sicher ähnlich handhaben.

Ein Gedanke zu „Richtige Bindung mit JS auf Android – die bind()-Funktion nachgebaut

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.