QtScript 之Qt4.6前后变化小记(QTBUG5757)

今天看到CSDN中有网友抱怨,C++ GUI Qt4编程(第二版) 一书中的QtScript部分的例子不工作。

原因比较简单:书中代码测试所用的例子是Qt4.3,但QtScript在Qt4.6时采用JavaScriptCore进行了重写(原来的模块改名为QtScriptClassic放入Qt Solutions中)。

这样一来,QtScript更符合EMAC-262标准,但也对不少用户造成困扰。

对关注Qt4.6前后QtScript问题的用户,QTBUG-5757中的信息将非常有用。

我们简单看一下:

QScriptEngine engine;
engine.evaluate(XXXX);

中XXX的内容:

Qt4.5

Qt4.6

"function(){return 1+1;}"

"(function(){return 1+1;})"

"var f = function(){return 1+1;}"

"return 1+1;"

"1+1"

"{ \"foo\": 123 }"

"({ \"foo\": 123 })"

可使用内置的 JSON.parse

...

...

而且现在看来,在Qt5中,QtScript是不会采用V8重写了,将保持目前的状态。


你可能感兴趣的:(编程,c,工作,function,测试,qt)