Zugriff auf variable in Objekt-Eigenschaft
Also habe ich ein problem festgestellt. Ich habe dieses Objekt aufgerufen myTree
. Und dieses Objekt hat Eigenschaften. Eine der Eigenschaften enthält eine Methode wie diese:
prep: function (variable) {
/* some code */
}
In dieser Methode es gibt eine Reihe myarray
und ich möchte wissen, ob es möglich ist den Zugriff auf den Inhalt des Arrays, und wenn es ist, wie ich das machen würde.
Ich habe eine demo auf jsFiddle, und am Ende der JavaScript-Fenster können Sie sehen, dass ich Alarmierung das Objekt prep
in die myarray
enthalten ist.
- in deinem code-Beispiel habe ich bemerkt, dass Sie eingewickelt Funktionen in Klammern angegeben, wie die Eigenschaft : (function() {...}) Können Sie bitte deuten für das, was Grund?
- stackoverflow.com/questions/9053842/...
- aber Sie wissen nicht rufen Sie diese Funktionen (in deinem jsfiddle-Beispiel), die Sie nicht verwenden (function () { ... }) () Sie einfach mit der warp Sie aber nicht nennen (function() {...}). gibt es einen Grund für das, was ich nicht weiß oder ist das der Fehler (zumindest redundant Sache)?
- Ich nenne dieses Objekt Methoden auf andere Orte. Und es ist nicht ein Fehler. Ich will einfach nur Zugriff auf einige Variablen in diese Funktionen, und damit habe ich ein problem. Alles andere funktioniert einwandfrei.
- Mögliche Duplikate von Zugriff auf Objekt-Eigenschaften im Objekt
Du musst angemeldet sein, um einen Kommentar abzugeben.
JavaScript-Variablen sind in der Funktion beschränkt. Es ist nicht möglich, den Zugriff auf Variablen die Zugehörigkeit zu einem inneren Umfang (d.h. "Funktion") aus einem äußeren Gültigkeitsbereich.
Wenn Sie möchten, die Art von Zugang, müssen Sie die entsprechenden Variablen Teil, der den äußeren Umfang.
In Ihrem Szenario, wo Sie verschachtelte Objekte, ist es ganz ähnlich:
Der einzige Unterschied ist die Verwendung der
this
Stichwort.Wenn Sie ein Objekt definieren Sie über die Objekt-literal syntax (
obj = {prop: value}
) statt über einen Konstruktor (function Obj(value) { this.prop = value; }; obj = new Obj(value);
), dann sind alle Eigenschaften definiert werden "public" per default.Wenn Sie eine Funktion aufrufen, die auf das Objekt
this
auf das entsprechende Objekt-Instanz.Zugriff auf eine "innere Bereich" variable von außerhalb ist noch nicht möglich. Es gibt keinen Weg darum herum.
Generell: Sie können auf Eigenschaften der Objekte, die Sie konstruieren. Man kann nie access-Funktion die lokalen Variablen (außer aus dem inneren von geschachtelten Funktionen).
function ()
in der ersten Zeile des Codes.