Ich versuche, eine parseFloatin JavaScript integrierte Funktion zu überschreiben .
Wie würde ich das machen?
function parseFloat() {}, aber es gibt meines Wissens keine Möglichkeit, die native Version dann tatsächlich aufzurufen.
Ich versuche, eine parseFloatin JavaScript integrierte Funktion zu überschreiben .
Wie würde ich das machen?
function parseFloat() {}, aber es gibt meines Wissens keine Möglichkeit, die native Version dann tatsächlich aufzurufen.
Antworten:
var origParseFloat = parseFloat;
parseFloat = function(str) {
alert("And I'm in your floats!");
return origParseFloat(str);
}
parseFloat? Ich habe es versucht, aber es ist der Fehler 'Maximale Größe des Aufrufstapels überschritten': jsfiddle.net/huZG2 . Vielen Dank.
Sie können jede integrierte Funktion überschreiben, indem Sie sie einfach erneut deklarieren.
parseFloat = function(a){
alert(a)
};
Jetzt parseFloat(3)wird 3 alarmiert.
Man könnte es außer Kraft setzen oder vorzugsweise erweitern sie die Umsetzung wie folgt aus
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);
Und nennen Sie es so, wie Sie es normalerweise nennen würden:
var result = parseFloat(1.345); // It should log the value 1.345 but get the value 0.345
Sie können es so machen:
alert(parseFloat("1.1531531414")); // alerts the float
parseFloat = function(input) { return 1; };
alert(parseFloat("1.1531531414")); // alerts '1'
Schauen Sie sich hier ein funktionierendes Beispiel an: http://jsfiddle.net/LtjzW/1/