Jump to content
php.lv forumi
Sign in to follow this  
ArnisR

JavaScript spēlīte: Color Lines

Recommended Posts

Divas galvenās problēmas, kuras šobrīg kodā redzu ir variable scope (tu bieži vien nepamani, ka tavi callback'i sāk grābstīties pa globālajiem mainīgajiem) un funkciju garums (tev ir vairākas 50+ rindu funkcijas kodā).

Share this post


Link to post
Share on other sites

Vai vari parādīt, kurā vietā pieskaras globālajiem mainīgajiem un kur funkcija (ar šo es šeit domāju funkcijas, nevis klases, kuras tiek simulētas ar funkcijām) ir virs 50 rindiņām.

Edited by codez

Share this post


Link to post
Share on other sites

Globāli mainīgie piemēram ir visi kas tiek izmantoti iekš https://github.com/arnisritins/Color-Lines/blob/master/lines.js#L346 timeout'a. Mainīgais "blocked" nav redzams no šīs rindas un no šīs (jo nav definēts ne funkcijā, ne iekš closure kas to ietver) tāpēc vērtības nonāk window.blocked mainīgajā.

 

Un 50+ rindu funkcijām piemēri ir: https://github.com/arnisritins/Color-Lines/blob/master/lines.js#L180 un https://github.com/arnisritins/Color-Lines/blob/master/lines.js#L552

Edited by mefisto

Share this post


Link to post
Share on other sites

Man šķiet, ka tev nav:

 

http://jsfiddle.net/cZU52/

function log(s){
    $('#log').append('<div>'+s+'</div>');
}

(function(){
  var foo = 1,
      
      
      outer = function () {
        log(foo);
        foo = 2;
        bar = 7;
        
        window.setTimeout(function () {
          log(foo);            
          log(window.foo);
          log(bar);
          log(window.bar);
        }, 1000);
      };
  
  outer();
}());

output:

1
2
undefined
7
7

Kā redzams, foo nav globālais.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×