我在Qt Creator 3.4.1中有一个QML,它每秒都会更新JS函数的值。每次函数运行然后终止。现在来看问题:
第一次运行该函数时,我想定义一个变量。然后该函数会更改此值,并使用代码运行的 next 时间。我只能创建一个每次代码再次运行时重新定义的变量
一个简单的例子是:
function func() {
var input = 10
input--
return input //input is now 9
}
下次代码运行时,它应使用 input 的新值,而不是10,而不是10.如何定义?
答案 0 :(得分:2)
尝试一个全局变量 - 在页面关闭时删除它。
select alf_content_url.content_url
from alf_node
left join alf_qname on alf_node.type_qname_id = alf_qname.id
left join alf_node_properties on alf_node_properties.node_id = alf_node.id
join alf_content_data on alf_content_data.id = alf_node_properties.long_value
left join alf_content_url on alf_content_url.id = alf_content_data.content_url_id
where
alf_qname.local_name = 'dictionaryModel'
and alf_content_url.content_url is not null
答案 1 :(得分:0)
您需要将该变量声明为该函数。函数内部声明的变量只在函数运行时被记住(闭包是例外)。
var input = 10;
function func() {
input--
return input //input is now 9
}
如果您希望在首次运行该函数之前取消声明该变量,您可以执行以下操作:
var input;
function func() {
if (input === undefined) {
input = 10;
}
input--
return input //input is now 9
}
答案 2 :(得分:0)
function(i){
if(i.isNaN()){ i = 10; }
return i--;
}
在每次运行重新声明输入= 10之前。输入-1 = 9。你需要做类似上面的事情......或者
{{1}}
答案 3 :(得分:0)
在函数中定义变量时,只要函数完成执行,该变量就会消失。如果您希望每次都在同一个函数调用中定义和使用变量,则需要在函数定义之上至少定义一个变量。
你可以做的就是定义一个函数,它返回一个符合你要求的函数。例如,
var foo = (function(){
var bar;
return function() {
if(bar === undefined){
bar = 10; // First function call, define bar
} else {
bar--; // Every consecutive call, do something with bar
}
}
})();
当你第一次执行foo()时,bar将被设置为10.每次连续调用都会将bar减1。