Memória kérdés a profiknak
Sziasztok!
A profikhoz lenne kérdésem.
programnyelv: Javascript.
funkció csoportosítása miatt az alább megoldást alkalmaztam (részlet):Az ok, hogy így csoportosítva vannak a funkciók, és áttekinthető.... stb.
A kérdés apropója: Egy barátom felvetette, hogy szerinte a return miatt (merthogy a deklarációk abban vannak), minden alkalommal mikor meghívok valamit belül, a memóriában létrejön egy újabb bejegyzés. Másképp: folyamatosan zabálja a memóriát, mert nem egy adott változó helyét adja vissza.
Tehát a kérdés, jó - e ez a megoldás, vagy okoz ez valami erőforrás pazarlást?
■ A profikhoz lenne kérdésem.
programnyelv: Javascript.
funkció csoportosítása miatt az alább megoldást alkalmaztam (részlet):
- var chatManagerInstance = function() {
- this.socketEmulatorProcessor = function() {
- var $this = this;
- return {
- unread: {
- start: function () {
- $.socketEmulator.register("chatManagerUnread", {
- api: {Mod: "prextChatManager", Func: "getUnreadMessageCount"},
- responseProcessor: $this.responseProcessor().unreadCounter
- });
- },
- stop: function () {
- $.socketEmulator.unRegister("chatManagerUnread")
- }
- },
- user: {
- start: function () {
- $.socketEmulator.register("chatManagerUsers", {
- api: {Mod: "prextChatManager", Func: "getUsers"},
- responseProcessor: $this.responseProcessor().userRender
- });
- },
- stop: function () {
- $.socketEmulator.unRegister("chatManagerUsers")
- }
- }
- }
- };
- }
- this.socketEmulatorProcessor().unread.start();
- this.socketEmulatorProcessor().user.stop();
A kérdés apropója: Egy barátom felvetette, hogy szerinte a return miatt (merthogy a deklarációk abban vannak), minden alkalommal mikor meghívok valamit belül, a memóriában létrejön egy újabb bejegyzés. Másképp: folyamatosan zabálja a memóriát, mert nem egy adott változó helyét adja vissza.
Tehát a kérdés, jó - e ez a megoldás, vagy okoz ez valami erőforrás pazarlást?
Nem
nem, nem.
Amikor valaki megnyitja a chat-et, akkor
Tehát ez itt hirtelen olyan, ami többször is lefut. Vagyis hogy többször is hozzányúlok a kérdéses return-os részhez.
Ráadásul elvi kérdés is, mert a kódolást hasznosnak tartom - azt, hogy csoportosítva vannak a funkciók, mert átlátható és érthető. Alkalmaznám több helyen.
Változó
user.start();
user.stop();
Elképzelhető, hogy nem a
1. Olyan furán hangzik ez a "funkciók csoportosítása" kifejezés
2. Igazából nem szól semmi az ellen, hogy használj egy plusz változót:
Néhány év tapasztalattal a
Én személy szerint nem szeretem annyira az ilyen függvény a függvényben jellegű dolgokat meg a closure-t, mert ha nem figyelsz, akkor vezethetnek memory leak-hez, illetve mert a javascript egy prototípus alapú nyelv, amiben talán jobb prototípusokat használni. Bár ez a memory leak dolog érdekes. De persze ez a closure vagy nem closure csak ízlés kérdése, mindenki azt csinál, amit akar, amíg nem kell utána hozzányúlnom a kódjához. :D
Köszönöm a válaszokat!