繁体   English   中英

在没有全局变量的情况下递增setInterval

[英]Incrementing setInterval without a global variable

numba = 1;

function A() {
    numba++;
    console.log(numba);
}

$(function() {
    var numnum2 = 0;
    setInterval('A()',1000);
    //setInterval(B.apply($(this)), 1000);
});


function B() {
    $(this).numnum2++;
    console.log($(this).numnum2);
}

小提琴

如何使B() A()减去A()成为全局变量?

$(function() {
    var numnum2 = 0;

    function B() {
        numnum2++;
        console.log(numnum2);
    }

    setInterval(A,1000);
    setInterval(B,1000);
});

要么

function B() {
    if(typeof B.numnum2 === 'undefined') B.numnum2 = 0;
    B.numnum2++;
    console.log(B.numnum2);
}

$(function() {
    B.numnum2 = 0;
    setInterval(A, 1000);
    setInterval(B, 1000);
});

你不能 JavaScript仅按值传递。

您可以传递带有属性的对象。

  function A(a) { a.numbna++; console.log('from A: ' + a.numbna); } $(function() { var a = { numbna : 0 }; setInterval(function() { A(a) },1000); setInterval(function() { B(a) },1000); //setInterval(B.apply($(this)), 1000); }); function B(a) { a.numbna++; console.log('from B: ' + a.numbna); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 

不确定您要寻找的是什么,但这是吗?

function newA() {
    var numba = 0;

    setInterval(function() {
        numba++;
        console.log(numba);
    }, 1000);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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