C'è un modo per ottenere il valore di ritorno della funzione quando viene chiamato da call() o apply()?Valore restituito con call() o apply() in JavaScript
mio scenario:
Ho una funzione che funziona bene con apply()
la funzione. Sull'oggetto contructor:
var someObject = new SomeObject({NameFunction: "MakeNames"});
su un ciclo nel metodo dell'oggetto:
var name = "";
for (var i = 0; i < data.length; i++) {
name = window[this.NameFunction].apply(null, [data[i]]);
}
E la funzione MakeNames
:
function MakeNames(data)
{
return data.FirstName + " " + data.LastName;
}
che var name
permanenza vuoto causa apply
non restituisce alcun valore dalla funzione. Nota che sono sicuro che la funzione è stata chiamata e che l'argomento è passato con successo. Per favore non dirmi di usare direttamente name = MakeNames(data[i]);
, perché è ovvio che non voglio questa soluzione.
Non importa se è apply
, call
o qualsiasi codice JavaScript deve fare questo lavoro, se funziona.
Come posso ottenere questo risultato?
i valori restituiti funzionano correttamente per me. eseguendo questo nella console del browser 'var x =" huh ".toString.apply (" test ");' imposta x su "test" per me. –
apply e call restituirà valori. Qualcos'altro deve essere sbagliato. puoi fornire più del codice che espone la funzione che stai cercando di chiamare? Anche cosa sta facendo toString? il tuo nome funzione è già una stringa nell'esempio. – Tim
@ ben336 Scusa amico, non capisco il tuo punto. Puoi pubblicare una risposta più accurata? – DontVoteMeDown