Comment puis-je obtenir l'adresse mémoire d'une variable JavaScript?

Est-il possible de trouver l'adresse mémoire d'une variable JavaScript? Le code JavaScript fait partie d'une application normale dans laquelle JavaScript est utilisé comme une face avant de C++ et ne fonctionne pas sur le navigateur. L'implémentation JavaScript utilisée est SpiderMonkey.

45
demandé sur vivekian2 2009-03-12 19:53:03

2 réponses

si cela était possible, cela dépendrait beaucoup du moteur javascript. Le moteur javascript plus moderne compilent leur code en utilisant un compilateur juste à temps et de jouer avec leurs variables internes serait soit mauvais pour la performance, ou mauvais pour la stabilité.

si le moteur le permet, pourquoi ne pas créer une interface d'appel de fonction vers un code natif pour échanger les valeurs de la variable?

14
répondu Emiel 2009-03-12 16:59:30

c'est plus ou moins impossible - la stratégie D'évaluation de Javascript est de toujours utiliser appel par valeur, mais dans le cas des objets (y compris les tableaux) la valeur transmise est une référence à L'objet, qui n'est ni copiée ni clonée. Si vous réassignez l'objet lui-même dans la fonction, l'original ne sera pas modifié, mais si vous réassignez une des propriétés de l'objet, cela affectera l'objet original.

cela dit, qu'essayez-vous d'accomplir? S'il ne fait que transmettre des données complexes entre C++ et Javascript, vous pouvez utiliser une bibliothèque JSON pour communiquer. Envoyer un objet JSON en C++ pour le traitement, et obtenir un objet JSON pour remplacer l'ancien.

8
répondu user2310967 2013-04-23 15:34:37