2011-12-09 11 views
1
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); 
} 

FiddleインクリメントのsetInterval

にはどうすればB()A()マイナスグローバル変数として機能するように得ることができますか?

答えて

3
$(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); 
}); 
1

できません。 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>

1

ない、あなたが探している正確に何をしてください、これはそれですか?

function newA() { 
    var numba = 0; 

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