gpt4 book ai didi

javascript - Qt QML Javascript 是如何管理内存的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:11:11 25 4
gpt4 key购买 nike

我有一个关于 Qt Javascript 的问题。

在大多数情况下,javascript 使用引用计数或标记清除来进行垃圾回收。我很好奇 Qt 是如何做到的。

特别是,我可以使用 QJSValue 将 javascript 对象传递给 C++。我想将 javascript 回调函数传递给 C++ 方法,并异步调用该函数。(例如,http 响应)是否安全,因为 QJSValue 已引用该对象?我不能确定。

如果 Qt 使用标记和清除垃圾收集,那么它如何在 C++ 端标记 referene?那么 Qt javascript 是否使用引用计数?

最佳答案

http://doc.qt.io/qt-5/qjsvalue.html

Note that a QJSValue for which isObject() is true only carries a reference to an actual object; copying the QJSValue will only copy the object reference, not the object itself. If you want to clone an object (i.e. copy an object's properties to another object), you can do so with the help of a for-in statement in script code, or QJSValueIterator in C++.

QJSValue 带有引用。

关于javascript - Qt QML Javascript 是如何管理内存的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com