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

2022-01-19 00:00:00 qt qml javascript

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

This code works fine in browser hosted JavaScript environment :

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

但是在 qml 中做同样的事情会导致 语法错误.

But doing the same in qml is giving syntax error.

我可能做错了什么?

推荐答案

在QML中,你应该把函数写成

In QML, you should write the function as

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

    console.log(a)
}

语法

function foo(a=true)

不支持此语法,因为 ECMA-262 第 6 版 而 QML 仅实现 第五版(从 Qt 5.11 开始).

is not supported as this syntax was introduced in ECMA-262 6th edition while QML only implements the fifth edition (as of Qt 5.11).

相关文章