In einem einfachen JS Objekt wie folgt:Referenzierung eine interne Variable in einem JS Objekt
var LeadserData = {
agent_id: 2,
object_queries: {
emails: {
url: "/manual_emails/",
method: 'GET',
send_data: {
the_id: this.agent_id
}
}
}
}
es ist offensichtlich möglich, die agent_id einfach so zugreifen:
LeadserData.agent_id = 100;
alert(LeadserData.agent_id);
Das gibt natürlich 100. Aber warum funktioniert die interne Referenz von this.agent_id
nicht?
Ich habe erwartet, dass dies auch als "100" herauskommt, aber stattdessen ist es undefiniert. Die ganze Geige ist hier: https://jsfiddle.net/h88zc5nw/1/
Was ist die Erklärung für dieses Verhalten, und wie kann ich dies optimieren, um die erwarteten 100
zurückgeben.
'LeadserData.agent_id' ist nicht dasselbe wie' LeadserData.object_queries.emails.send_data.the_id'. Das Ändern eines wird sich nicht auf das andere auswirken, da es sich um zwei verschiedene Eigenschaften für zwei verschiedene Objekte handelt. –
Die Syntax gibt keine Fehler zurück, die erwarten würden, dass dies geschehen würde, wenn diese.agent_id nicht gültig wäre. Ersetzen Sie es mit f ex "RandomVariable" wirft einen Fehler ... – charliez
Es gibt keinen Fehler, weil es keinen Grund zu einem Fehler gibt. Der "this" -Wert verweist auf ein Objekt (höchstwahrscheinlich), aber nicht auf den gewünschten. –