¿Es posible encontrar la dirección de memoria de una variable de JavaScript? El código JavaScript es parte de (incrustado en) una aplicación normal donde JavaScript se usa como interfaz para C++ y no se ejecuta en el navegador. La implementación de JavaScript utilizada es SpiderMonkey.¿Cómo puedo obtener la dirección de memoria de una variable de JavaScript?
Respuesta
Si fuera posible, sería muy dependiente del motor de JavaScript. El motor javascript más moderno compila su código usando un compilador justo a tiempo y jugar con sus variables internas sería malo para el rendimiento o malo para la estabilidad.
Si el motor lo permite, ¿por qué no hacer una interfaz de llamada a función a algún código nativo para intercambiar los valores de la variable?
Sí, estoy de acuerdo, creo que es necesario tener algún código en C++ que pueda interactuar con JavaScript. – vivekian2
Es más o menos imposible: la estrategia de evaluación de Javascript es usar siempre la llamada por valor, pero en el caso de los objetos (incluidas las matrices) el valor pasado es una referencia al objeto, que no se copia ni clona. Si reasigna el Objeto mismo en la función, el original no se cambiará, pero si reasigna una de las propiedades del Objeto, eso afectará al Objeto original.
Dicho esto, ¿qué intentas lograr? Si solo está pasando datos complejos entre C++ y Javascript, podría usar una biblioteca JSON para comunicarse. Envíe un objeto JSON a C++ para su procesamiento y obtenga un objeto JSON para reemplazar el antiguo.
Gran nota sobre la reasignación de Object o una propiedad. ¿Puedes de alguna manera cambiar el objeto al que apuntan los puntos originales? – Qwerty
¿Quiere decir, cambiar la referencia de un objeto dentro de un alcance diferente? No. En tales situaciones, es mejor utilizar la encapsulación de JS o las instalaciones orientadas a objetos, ya sea colocando el cuerpo de la función y la referencia que desea cambiar en el mismo ámbito, o haciendo que la referencia y los miembros de la función del mismo objeto . – user2310967
- 1. ¿Cómo puedo imprimir la dirección de memoria de una variable?
- 2. ¿Cómo puedo obtener la dirección de una estructura en C?
- 3. ¿Cómo obtener la dirección de memoria del montón de Java?
- 4. Cómo obtener una dirección de memoria específica usando C
- 5. C++ - Obtener el valor de una dirección de memoria particular
- 6. ¿Cómo puedo obtener una dirección MAC de una solicitud HTTP?
- 7. ¿Cómo puedo obtener la dirección de celda de Excel
- 8. dirección C de una dirección de una variable
- 9. C# dirección de memoria y las variables
- 10. dirección de memoria literal
- 11. cómo obtener la dirección de memoria de una matriz numpy para C
- 12. ¿Cómo puedo obtener la dirección de movimiento usando un acelerómetro?
- 13. ¿Cómo puedo obtener la dirección de correo electrónico
- 14. ¿Cómo poner una variable en una dirección absoluta dada en la memoria (con GCC)
- 15. ¿Cómo obtener anotaciones de una variable miembro?
- 16. Cómo imprimir/registrar la dirección de una variable en NDK
- 17. Cómo obtener la dirección de la brújula
- 18. Obtener nombre de variable. javascript "reflection"
- 19. ¿La primitiva tiene asignada una dirección de memoria?
- 20. ¿Cómo puedo usar una variable de JavaScript como una variable de PHP?
- 21. ¿Cómo traducir una dirección de memoria virtual a una dirección física?
- 22. Conozca la dirección de una variable en Visual Studio
- 23. Cómo obtener la dirección IP de sockaddr
- 24. gdb buscar la dirección de memoria del número de línea
- 25. La forma más portable y confiable de obtener la dirección de la variable en C++
- 26. gdb interpretar la dirección de memoria como un objeto
- 27. ¿Cómo encontrar la dirección de memoria de una función con lldb?
- 28. ¿Cómo puedo obtener una dirección de correo electrónico de una cadena de pares clave = valor?
- 29. Cómo obtener coordenadas de dirección desde Python
- 30. ¿Cómo obtener la dirección de una función miembro sobrecargada?
Por "incrustado en una aplicación normal", ¿quiere decir que tiene una página web con Javascript incrustado? – Juliet
No, no se ejecuta en el navegador, no hay páginas web involucradas. El motor de JavaScript es parte de una aplicación de escritorio normal. – vivekian2