Sonne comme un emploi pour une fonction wrapper pour moi.
Ecrivez une fonction qui appelle l'autre fonction et placez votre code à la fin de celle-ci (ou ailleurs). Alors appelez toujours votre version à la place.
Sorte de motif d'adaptateur. Je crois que vous pouvez masquer la portée de la fonction d'origine et nommez la même chose si vous ne pouvez pas modifier le code appelant (ne fonctionne pas sur certaines fonctions intrinsèques comme l'alerte, mais devrait fonctionner pour le code de la bibliothèque). Si ce n'est pas une option, voyez si prototype vous permettra d'étendre l'objet pour ajouter la fonctionnalité. http://phrogz.net/js/classes/ExtendingJavaScriptObjectsAndClasses.html
//Only add this implementation if one does not already exist.
if (Array.prototype.slice==null) Array.prototype.slice=function(start,end){
if (start<0) start=this.length+start; //'this' refers to the object to which the prototype is applied
if (end==null) end=this.length;
else if (end<0) end=this.length+end;
var newArray=[];
for (var ct=0,i=start;i<end;i++) newArray[ct++]=this[i];
return newArray;
}
Pour arguments, vous pouvez également prendre votre version des arguments optionnels (similaires à jQuery/MooTools), puis regarder ce qui a été adopté.
Exemples d'arguments optionnels ici. http://www.openjs.com/articles/optional_function_arguments.php
function accident() {
for(var i = 0; i < arguments.length; i++) {
alert("This accident was caused by " + arguments[i]);
}
}
Dans [aspect orienté] (http://en.wikipedia.org/wiki/Aspect-oriented_programming) et (http://en.wikipedia.org/wiki/Functional_programming) [fonctionnelle] la programmation, ce que vous demandez est appelé ["conseil"] (http://en.wikipedia.org/wiki/Advice_%28programming%29). – outis