Como posso obter o endereço de memória de uma variável JavaScript?
-
11-07-2019 - |
Pergunta
É possível encontrar o endereço de memória de uma variável JavaScript? O código JavaScript é parte de (encaixada) uma aplicação normal onde JavaScript é usado como uma extremidade dianteira para C ++ e não é executado no navegador. A implementação JavaScript utilizada é SpiderMonkey.
Solução
Se seria possível em tudo, seria muito dependente do motor de javascript. O motor de JavaScript mais moderno compilar seu código usando um apenas no compilador tempo e mexer com suas variáveis ??internas seria ou ruim para o desempenho, ou ruim para a estabilidade.
Se o motor permite que ele, por que não fazer uma interface chamada de função para algum código nativo para trocar os valores da variável?
Outras dicas
É mais ou menos impossível - estratégia de avaliação do Javascript é usar sempre chamada por valor, mas no caso de objetos (incluindo matrizes) o valor passado é uma referência para o objeto, que não é copiado ou clonado. Se você transferir o próprio objeto na função, o original não será alterado, mas se você um Reassign de propriedades do objeto, que vai afetar o objeto original.
Dito isto, o que você está tentando realizar? Se ele está só de passagem de dados complexas entre C ++ e JavaScript, você poderia usar uma biblioteca JSON para se comunicar. Enviar um objeto JSON para C ++ para processamento, e obter um objeto JSON para substituir o antigo.