2017-09-26 1 views
0

Comment faire pour remplacer la fonction dans JavaScript?Substitution de fonction dans JavaScript

J'ai ci-dessous le code.

function helloWorld() { 
    return 'helloworld '; 
} 

var origHelloWorld = window.helloWorld; 

window.helloWorld = function() { 
    return 'helloworld2'; 
} 

alert(helloWorld); 

Je voudrais obtenir une sortie comme

helloworld helloworld2

Que dois-je faire?

Peut être moins décrit. En fait, je voudrais appeler la fonction helloworld et je voudrais obtenir la sortie des deux fonctions conjointement.

+0

Appelez l'original de votre override et ajouter le résultat à la valeur de retour. – DarthJDG

+0

Et appelez également le substitué dans l'argument d'alerte. – Teemu

+1

Vous devez lire sur les prototypes en javascript, ça va probablement vous aider. – sjahan

Répondre

1

Essayez ceci:

function helloWorld() { 
    return 'helloworld '; 
} 

var origHelloWorld = window.helloWorld; 

window.helloWorld = function() { 
    return origHelloWorld() + ' ' +'helloworld2'; 
} 

alert(helloWorld()); 
+0

Merci @colxi pour votre réponse. Votre réponse est correcte si je veux seulement imprimer 'helloworld helloworld2'. Mais ceci est un exemple. Je voudrais obtenir la sortie des deux fonctions conjointement quel que soit le code existe dans les fonctions. Merci –

+0

je ne comprends pas, que voulez-vous dire? – colxi

0

Etes-vous sûr, vous comprenez passer outre?

vôtre échantillon avec le même parme, comment le remplacer?

et javascript n'a pas une méthode sur le remplacement, mais vous pouvez remplacer d'autres façons. vous pouvez suivre other questions in stackoverflow

0

En utilisant des fermetures pour éviter de polluer l'espace de noms global:

function helloWorld() { 
    return 'helloworld '; 
} 

helloWorld = (function() { 
    var original = window.helloWorld; 
    return function() { 
    return original() + ' helloworld2'; 
}})(); 

alert(helloWorld());