J'essaye de remplacer une parseFloatfonction intégrée dans JavaScript .
Comment pourrais-je faire ça?
function parseFloat() {}, mais pour autant que je sache, il n'y a aucun moyen d'appeler la version native à ce moment-là.
J'essaye de remplacer une parseFloatfonction intégrée dans JavaScript .
Comment pourrais-je faire ça?
function parseFloat() {}, mais pour autant que je sache, il n'y a aucun moyen d'appeler la version native à ce moment-là.
Réponses:
var origParseFloat = parseFloat;
parseFloat = function(str) {
alert("And I'm in your floats!");
return origParseFloat(str);
}
parseFloat? J'ai essayé ceci mais il erreurs «Taille maximale de la pile d'appels dépassée»: jsfiddle.net/huZG2 . Merci.
Vous pouvez remplacer n'importe quelle fonction intégrée en la re-déclarant simplement.
parseFloat = function(a){
alert(a)
};
Maintenant parseFloat(3)va alerter 3.
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 appelez-le comme vous l'appelez normalement:
var result = parseFloat(1.345); // It should log the value 1.345 but get the value 0.345
Vous pouvez le faire comme ceci:
alert(parseFloat("1.1531531414")); // alerts the float
parseFloat = function(input) { return 1; };
alert(parseFloat("1.1531531414")); // alerts '1'
Découvrez un exemple de travail ici: http://jsfiddle.net/LtjzW/1/