[英]Js variable definition
我在Qt Creator 3.4.1中有了一个QML,它每秒都会更新JS函数的值。 每次该函数运行,然后终止。 现在解决问题:
第一次运行该函数时,我想定义一个变量。 该值然后由函数更改,并在下次代码运行时使用。 我只能创建一个变量,每次代码再次运行时都会重新定义
一个简单的例子是这样的:
function func() {
var input = 10
input--
return input //input is now 9
}
下次代码运行时,它将使用input的新值9(而不是10)。如何定义它?
尝试使用全局变量-关闭页面后将其删除。
var input = 10;
function func() {
input--;
return input;
}
您需要在函数之外声明变量。 仅在函数运行时记住函数内部声明的变量(闭包是一个例外)。
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
}
function func(input) {
return input--; //input is now input-1
}
在每次运行将输入重新声明为= 10之前。 输入-1 = 9。 您需要执行上述操作...或
function(i){
if(i.isNaN()){ i = 10; }
return i--;
}
当您在函数中定义变量时,该变量将在函数完成执行后消失。 如果您希望每次都在同一函数调用中定义和使用一个变量,则需要在该函数定义的至少上一级定义该变量。
您可以做的就是定义一个函数,该函数返回一个符合您要求的函数。 例如,
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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.