Tworzę grę logiczno-przygodową typu escape w technologiach webowych. Na początku wszystkie funkcje i zmienne służące do wykonywania akcji na przedmiotach w pokojach były w przestrzeni globalnej (window). Zaczął robić się bałagan. Aby go uporządkować, stworzyłem przestrzenie nazw (obiekty) dla większych przedmiotów (komputer, kalkulator).

Kod: http://pastebin.com/m1d30b2e9

Co jest lepsze i dlaczego? Zależy mi na wydajności, aby przy obciążeniu przeglądarka nie przycinała.

1. Przestrzenie nazw: obiekty, które reprezentują urządzenia i zawierają metody (np. włóż dysk, włącz, wyłącz, wpisz cyfrę) oraz własności (np. wylosowana liczba, obiekt w kodzie XHTML, stan urządzenia).
Kod
COMP = {enable: function() {}, on: 0, code: ...}


2. Funkcje i zmienne w globalnym zakresie (window).
Kod
function EnableComp() {};
CompON = 0;
code = ...;

Oba rozwiązania będą działać (raczej) tak samo. Posegregowałem wszystko do obiektów, ale pozostaje pytanie, czy są inne zalety takiego rozwiązania (1). Równie dobrze można uporządkować zmienne i funkcje (2) bez przestrzeni nazw.

Doradzają mi też styl OOP, ale raczej nie będę wykorzystywał w grze dwóch komputerów, które będą pracować tak samo lub dwóch skanerów do kart. Może jednak mają rację?