Js变量定义

时间:2016-01-19 19:19:46

标签: javascript qt

我在Qt Creator 3.4.1中有一个QML,它每秒都会更新JS函数的值。每次函数运行然后终止。现在来看问题:

第一次运行该函数时,我想定义一个变量。然后该函数会更改此值,并使用代码运行的 next 时间。我只能创建一个每次代码再次运行时重新定义的变量

一个简单的例子是:

function func() {
  var input = 10

  input--

return input //input is now 9
}

下次代码运行时,它应使用 input 的新值,而不是10,而不是10.如何定义?

4 个答案:

答案 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。