Как я могу получить адрес памяти переменной JavaScript?

StackOverflow https://stackoverflow.com/questions/639514

Вопрос

Можно ли найти адрес памяти переменной JavaScript? Код JavaScript является частью (встроенного в) обычного приложения, где JavaScript используется в качестве внешнего интерфейса для C ++ и не запускается в браузере. Используемая реализация JavaScript - SpiderMonkey.

Это было полезно?

Решение

Если бы это было вообще возможно, это было бы очень зависеть от движка javascript. Более современный движок javascript компилирует их код, используя своевременный компилятор, и беспорядок с их внутренними переменными будет либо ухудшать производительность, либо ухудшать стабильность.

Если движок это позволяет, почему бы не создать интерфейс вызова функции для некоторого нативного кода для обмена значениями переменной?

Другие советы

Это более или менее невозможно - стратегия оценки Javascript заключается в том, чтобы всегда использовать вызов по значению, но в случае объектов (включая массивы) передаваемое значение является ссылкой на объект, который не копируется и не клонируется. Если вы переназначите сам объект в функции, оригинал не будет изменен, но если вы переназначите одно из свойств объекта, это повлияет на исходный объект.

Тем не менее, что вы пытаетесь достичь? Если он просто передает сложные данные между C ++ и Javascript, вы можете использовать библиотеку JSON для связи. Отправьте объект JSON в C ++ для обработки и получите объект JSON для замены старого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top