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!