Comment gérer l'absence de l'Objet JavaScript.méthode bind() dans IE 8
Je suis en train d'écrire un peu de code JavaScript qui utilise la Object.bind
méthode.
funcabc = function(x, y, z){
this.myx = x;
this.playUB = function(w) {
if ( this.myx === null ) {
//do blah blah
return;
}
//do other stuff
};
this.play = this.playUB.bind(this);
};
Depuis que je développe dans WinXP avec Firefox et parfois tester dans Win7 avec IE 9 ou 10, je n'ai pas d'avis ou de payer l'attention sur le fait que IE8 et ci-dessous ne prennent pas en charge bind
.
Ce script n'utilise pas de la toile, donc je suis un peu hésitant à écrire de toutes IE 8 utilisateurs.
Est-il un travail autour?
Je suis autour de sorte de bon en JavaScript, mais je suis encore un peu noob. Pardonne-moi donc si la solution est tout à fait évident.
- Oui, manquant:
Not supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards.
Vous devez vous connecter pour publier un commentaire.
Il y a une bonne compatibilité script sur cette page:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
Il suffit de copier et coller dans votre script.
EDIT: de placer le script ci-dessous pour plus de clarté.
bind
chose.\
.La meilleure solution pourrait être d'installer le Modernizr.
Modernizr vous indique si le navigateur dispose de cette fonctionnalité nativement mise en œuvre ou non
et il fournit un script chargeur de sorte que vous pouvez tirer dans les polyfills pour le remblaiement de la fonctionnalité dans les anciens navigateurs.
Voici le lien pour générer votre modernizr version personnalisée:
http://modernizr.com/download/#-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes
Function.prototype.bind !== undefined
). Cependant, il est un peu correct parce que Modernizr comprend en fait une fonction de lier polyfill lui-même! Les détails de son inclusion ici: github.com/Modernizr/Modernizr/issues/478Fonction.le prototype.lier n'est pas pris en charge dans Internet Explorer 8 et ci-dessous. Tableau de compatibilité ici: http://kangax.github.io/es5-compat-table/
Mozilla Developer Network fournir cette solution de rechange pour les anciens navigateurs qui ne sont pas mises en œuvre .bind() en mode natif:
La Fonction constructeur est l'ancienne façon de faire:
JS:
Références