У меня возник вопрос о объекте C++ & Неисправность цикла жизненного цикла Javascript и надеюсь, что ваши гуру могут помочь мне.C++ Object & Javascript Неисправность жизненного цикла объекта
В частности, я внедряю SpiderMonkey в свою программу на C++. Я не уверен, что мой подход прав или нет. То, что я делаю, как
(1) Программа C++ загружает файл Javascript и вызывает функцию ввода.
(2) В функции ввода вызываются некоторые функции C++ для инициализации программы. Во время этих вызовов будут созданы некоторые объекты C++.
(3) На основе взаимодействия с пользователем соответствующая функция скрипта будет вызываться как обработчик событий.
Этот подход работает, но с одной проблемой (там может быть неопознанными больше :)
То есть,
В моей JS функции обработчика событий, мне нужно принести C++ объект в контексте Javascript и вызовите функцию-член. Для этого в моей функции C++ fetching я проверяю, был ли создан соответствующий JS-объект-сверстник. Если нет, я использую JS_NewObject, чтобы создать его и вернуть. Тогда функция JS могла бы вызвать на ней встроенную функцию.
Проблема в том, что в некоторых случаях результат вызова такой нативной функции приведет к смерти объекта C++. Тем не менее, я не могу найти способ уведомлять JS-контекст, чтобы удалить его одноранговый объект JS. Мне не удалось найти функцию JSAPI.
В моей текущей программе все объекты JS, созданные с использованием JS_NewObject, уничтожаются, когда, наконец, среда выполнения JS уничтожается.
Я предполагаю, что это что-то делает с «сборкой мусора SipderMonkey». Но я еще не нашел хорошего руководства. Большое спасибо за любое предложениеto