Gibt es eine Möglichkeit, den Rückgabewert der Funktion zu erhalten, wenn sie von call() oder apply() aufgerufen wird?Gibt Werte mit call() oder apply() in JavaScript zurück
Mein Szenario:
Ich habe eine Funktion, die mit apply()
Funktion einwandfrei funktioniert. Auf Objekt contructor:
var someObject = new SomeObject({NameFunction: "MakeNames"});
auf einer Schleife in dem Objekt der Methode:
var name = "";
for (var i = 0; i < data.length; i++) {
name = window[this.NameFunction].apply(null, [data[i]]);
}
Und die MakeNames
Funktion:
function MakeNames(data)
{
return data.FirstName + " " + data.LastName;
}
Der var name
Aufenthalt leer Ursache apply
kehrt nicht jeder Wert von der Funktion. Beachten Sie, dass die Funktion sicher aufgerufen wird und das Argument erfolgreich übergeben wird. Bitte sagen Sie mir nicht direkt name = MakeNames(data[i]);
zu verwenden, weil es offensichtlich ist, dass ich diese Lösung nicht möchte.
Es spielt keine Rolle, ob es apply
, call
oder was auch immer JavaScript hat, um dies zu arbeiten, funktioniert, wenn es funktioniert.
Wie kann ich das erreichen?
Rückgabewerte funktionieren für mich ok. Führen Sie dies in der Browser-Konsole 'var x =" huh ".toString.apply (" test ");' setze x auf "test" für mich. –
anwenden und Aufruf wird Werte zurückgeben. Etwas anderes muss falsch sein. Können Sie mehr Code bereitstellen, der die Funktion, die Sie aufrufen möchten, offengelegt hat? Was macht toString? Ihr Funktionsname ist in Ihrem Beispiel bereits eine Zeichenfolge. – Tim
@ ben336 Sorry, du kannst deinen Standpunkt nicht verstehen. Können Sie eine genauere Antwort posten? – DontVoteMeDown