Javascript Variables Pointeurs d'Objet
J'ai une question par curiosité. Alors j'ai regardé dans comment JS poignées affectation de variable et je le comprends. Comment fonctionne l'attribution de la variable travail en JavaScript?
Mais le même principe ne semble pas à l'exposition elle-même dans le code suivant, je suis en train de travailler sur:
var temp = playlist1[0];
playlist1[0] = playlist1[1];
playlist1[1] = temp;
Je sais que c'est un moyen standard pour échanger des éléments d'un tableau. Mais si temp est de pointer les playlist1[0]
, et playlist1[0]
'contenu est changé à playlist1[1]
'alors, comment se fait je ne se termine pas avec deux playlist1[1]
valeurs dans une ligne?
double possible de Comment fonctionne l'attribution de la variable travail en JavaScript?
J'ai voté comme un doublon parce que la réponse à la question que vous avez lié est la réponse à votre question.
Je pense que la question est juste, car il demande des précisions sur une question existante. L'autre question est ancienne et n'est probablement pas surveillés plus.
Vieux ou pas, la réponse est la même.
OP affirme qu'il a posé cette question à de plus amples sa compréhension du sujet. Lors de la première interprétation (pas venant d'un lieu de savoir déjà") liés question ne répond pas clairement à la question. Lors de la finale de l'interprétation (venant d'un lieu de savoir déjà'), alors que l'OP voit comment la question liée peut aider; comme un texte de référence et non pas l'apprentissage d'un texte. Mais OP maintient que cette question, qui ajoute de la valeur à la question et d'approfondir l'apprentissage d'éviter une probable fausse idée de la variable pointeur d'objet concept.
J'ai voté comme un doublon parce que la réponse à la question que vous avez lié est la réponse à votre question.
Je pense que la question est juste, car il demande des précisions sur une question existante. L'autre question est ancienne et n'est probablement pas surveillés plus.
Vieux ou pas, la réponse est la même.
OP affirme qu'il a posé cette question à de plus amples sa compréhension du sujet. Lors de la première interprétation (pas venant d'un lieu de savoir déjà") liés question ne répond pas clairement à la question. Lors de la finale de l'interprétation (venant d'un lieu de savoir déjà'), alors que l'OP voit comment la question liée peut aider; comme un texte de référence et non pas l'apprentissage d'un texte. Mais OP maintient que cette question, qui ajoute de la valeur à la question et d'approfondir l'apprentissage d'éviter une probable fausse idée de la variable pointeur d'objet concept.
OriginalL'auteur nemo | 2013-07-26
Vous devez vous connecter pour publier un commentaire.
Non seulement variables sont des pointeurs d'objet. Toutes les valeurs (qui ne sont pas primitives) sont des pointeurs d'objet. Donc
temp
est un pointeur d'objet.playlist1
est un pointeur d'objet à un objet de tableau dont les éléments sont des pointeurs d'objet. par exemple,playlist1[0]
est un pointeur d'objet,playlist1[1]
est un pointeur d'objet, etc.Ce n'est pas logique.
temp
est un pointeur d'objet. Il pointe vers un objet.playlist1[0]
n'est pas un objet; c'est un pointeur d'objet.temp = playlist1[0];
fait l'objet pointeurtemp
pointent vers le même objet sous forme de pointeurplaylist1[0]
.Si vous savez C, il est équivalent à quelque chose comme ceci:
OriginalL'auteur newacct
Ceci est cohérent avec la réponse en référence à la question:
Vous êtes simplement en changeant l'objet à la variable de points à ne pas les données utilisées pour le pointage. Sens temp n'est pas affectée par le passage d'avoir playlist1[1] point de playlist1[2]. Temp conserve la valeur d'origine, il a souligné lors de la playlis1[1] et temp à la fois pointu. Seulement playlist1[1] est mis à jour
OriginalL'auteur TGH
Parce que ceux qui sont encore des références à des éléments dans le tableau et non pas les éléments eux-mêmes. Donc, dans la ligne:
Vous n'êtes pas changer quoi que ce soit à propos de temp. Voilà qui contraste avec quelque chose comme (en supposant que les éléments du tableau ont été les objets):
Qui est en fait de l'affectation de la valeur de l'objet dans le tableau, et si temp a souligné la liste de lecture[1], puis temp.x serait égal à la liste de lecture[2].x
OriginalL'auteur mckurt
dire que nous avons
obj={l1:{l2:[1,2]},}
et nous voulons nous attaquerobj.l1.l2[1]
à l'aide d'un éventail de niveaux commearr=["l1","l2",1]
alors :Ainsi, après la définition de "point" de la méthode (qui n'est pas énumérable gâcher everithing), nous pouvons utiliser
pour obtenir la valeur 2
OriginalL'auteur bortunac