繁体   English   中英

js变量定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM