ECMAScript Cinquième Édition (publié en décembre 2009) introduit un tas de nouvelles méthodes (voir ce tableau pour plus de détails). Cependant, il y a toujours les anciens navigateurs qui ne mettent pas en œuvre ces nouvelles méthodes.
Heureusement, il existe une pratique de script (écrit en JavaScript) - ES5-cale - qui met en œuvre ces méthodes manuellement dans des environnements où ils n'existent pas.
Cependant, je ne suis pas sûr de la façon de fournir de l'ES5-shim... Devrais-je viens de "donner" à tous les navigateurs, comme suit:
<script src="es5-shim.js"></scipt>
Ou dois-je inclure un chèque à l'ordre de "déranger" les navigateurs qui en ont vraiment besoin, comme suit:
<script>
if ( !Function.prototype.hasOwnProperty( 'bind' ) ) {
(function () {
var shim = document.createElement( 'script' );
shim.src = 'es5-shim.js';
var script = document.getElementsByTagName( 'script' )[0];
script.parentNode.insertBefore( shim, script );
}());
}
</script>
(Je suis à l'aide d' Function.prototype.bind
afin de vérifier si un navigateur implémente toutes les nouvelles ECMAScript 5 méthodes. Selon le tableau de compatibilité qui j'ai lié ci-dessus, bind
est le "dernier bastion" quand il s'agit de la mise en œuvre de ECMAScript 5 méthodes.)
Bien sûr, pour cela cale pour être efficace, il doit être exécuté avant tous les autres scripts, ce qui signifie que nous voulons inclure le mentionnés ci-dessus les éléments de SCRIPT début de la page (dans la TÊTE, avant tous les autres éléments de SCRIPT).
Ce deuxième exemple être un bon moyen de fournir ECMAScript 5-cale pour les navigateurs? Est-il un meilleur moyen de le faire?