qml函数的默认参数给出了语法错误

时间:2017-05-23 07:15:58

标签: javascript qt qml

此代码在浏览器托管的JavaScript环境中运行良好:

    function foo(a=true)
    {
        console.log(a)
    }

但是在qml中做同样的事情就是给syntax error

我可能做错了什么?

2 个答案:

答案 0 :(得分:7)

在QML中,您应该将函数编写为

function foo(a) {
    if (a === undefined) a = true

    console.log(a)
}

语法

function foo(a=true)
不支持

,因为ECMA-262 6th edition中引入了此语法,而QML仅实现了fifth edition(从Qt 5.11开始)。

答案 1 :(得分:2)

从Qt 5.12开始,此代码可以正常工作。 See release note.

  • JavaScript引擎现在支持ECMAScript 7

希望这对以后的人们有帮助。