Qt QML Javascript如何管理内存?

时间:2016-12-23 06:09:20

标签: javascript c++ qt

我对Qt Javascript有疑问。

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

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

如果Qt使用标记和扫描垃圾收集,那么它如何标记C ++方面的参考?那么Qt javascript使用引用计数吗?

1 个答案:

答案 0 :(得分:1)

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

  

请注意,isObject()为true的QJSValue只携带对实际对象的引用;复制QJSValue只会复制对象引用,而不是对象本身。如果要克隆一个对象(即将对象的属性复制到另一个对象),可以借助脚本代码中的for-in语句或C ++中的QJSValueIterator来实现。

QJSValue带有参考。