Ich habe einen sehr einfachen Code getestet und es wurde erwartet, dass ich einen Fehler erhalte, aber ich habe eine Zeichenfolge "result" von der Konsole zurückgegeben! HierJavaScript gibt "result" anstelle von Fehler oder Ausnahme zurück
ist der Code:
var person = { name: "Mohammad", last_name: "Kermani"};
var show_person = function (age){
console.log(this.name +" is "+ age + " years old");
}
Nun jetzt Sie können wir nicht this.name
verwenden, wenn JavaScript nicht weiß, was this
(Objekt), dann müssen wir call
oder apply
verwenden.
Nun, wenn ich dies schrieb, bekam ich "Ergebnis" string (statt Fehler oder Warnung):
show_person(20); //Returns: result is 20 years old
Siehe Jsfiddle und was Konsole kehrt zurück.
show_person.call(person, 20); //Returns: Mohammad is 20 years old
Was die Zeichenfolge „Ergebnis“ ist und warum JavaScript-Fehler nicht zurück, wenn sie keinen Zugriff auf this.name
haben:
Der Code mit call
sollte aussehen?
Und was passiert, wenn wir kein Objekt in einer Funktion verwenden und eine seiner Eigenschaften erhalten möchten?(wie hier wollte ich Name der Person-Objekt erhalten)
Mögliches Duplikat von [Wie funktioniert das "dieses" Schlüsselwort?] (Http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) – Andreas
die Ausgabe des Ausdrucks 'show_person (20); 'ist 20 Jahre alt in Chrom. – viveksinghggits