130 votes

Comment remplacer une fonction JavaScript

J'essaie de remplacer une fonction parseFloat intégrée dans JavaScript.

Comment je pourrais faire ça ?

253voto

David Waters Points 6645
var origParseFloat = parseFloat;
parseFloat = function(str) {
     alert("And I'm in your floats!");
     return origParseFloat(str);
}

46voto

Rocket Hazmat Points 87407

Vous pouvez remplacer n'importe quelle fonction intégrée en la déclarant simplement à nouveau.

parseFloat = function(a){
  alert(a)
};

Maintenant parseFloat(3) va alerter 3.

33voto

Vous pouvez le remplacer ou de préférence étendre son implémentation comme ceci

parseFloat = (function(_super) {
    return function() {
        // Extend it to log the value for example that is passed
        console.log(arguments[0]);
        // Or override it by always subtracting 1 for example
        arguments[0] = arguments[0] - 1;
        return _super.apply(this, arguments);
    };         

})(parseFloat);

Et appelle ça comme tu l'appellerais normalement :

var result = parseFloat(1.345); // It should log the value 1.345 but get the value 0.345

11voto

dorkitude Points 4484

Vous pouvez le faire comme ceci :

alert(parseFloat("1.1531531414")); // alerts the float
parseFloat = function(input) { return 1; };
alert(parseFloat("1.1531531414")); // alerts '1'

Consultez un exemple pratique ici : http://jsfiddle.net/LtjzW/1/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X