1. 问题:
qml函数中的不同块中定义同名变量,报警:Name is declared more than once
举例:
function test(a){if(a === "1"){var re = 1;console.log(re);}else{var re = 2; //这里会报警:Name is declared more than onceconsole.log(re);}
}
2. 原因:
- qml与C++不同。
- qml在函数中声明的变量在函数中的任何地方都是可见的,即使在嵌套块或语句条件中声明也是如此。重新声明变量没有效果。
参考:
Qt:QML:JavaScript 和QML 语法错误表