Hirdetés
- QHD OLED és extrém frissítés: bemutatkozott a Sony INZONE M10S II
- Bekebelezi az Amazon az Apple műholdas partnerét
- Vége a régi Kindle-öknek? Az Amazon május 20-án beszünteti támogatásukat
- Munkához is jó lehet a OneXPlayer gaming tabletje
- AMD Strix Haloval érkezik a OneXPlayer erőtől duzzadó mini PC-je
- Milyen egeret válasszak?
- Nem indul és mi a baja a gépemnek topik
- AMD Navi Radeon™ RX 9xxx sorozat
- Snapdragon 8 Elite Gen 5 és folyadékhűtés jöhet a RedMagic új gamer táblagépébe
- Bambu Lab 3D nyomtatók
- Azonnali VGA-s kérdések órája
- QHD OLED és extrém frissítés: bemutatkozott a Sony INZONE M10S II
- 3DFX
- Vezeték nélküli fejhallgatók
- Kormányok / autós szimulátorok topikja
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Pala
veterán
Sziasztok!
Akad itt valaki, aki object composition (és ezzel kapcsolatos patternek, best practice-ek) terén otthonosabban mozog.Szinte bárhol olvasok a témáról, általában a lentihez hasonló példákkal illusztrálják, hogyan is néz ez ki a gyakorlatban (ez nem az én kódom, csak példa):
const canCast = (state) => ({
cast: (spell) => {
console.log(`${state.name} casts ${spell}!`);
state.mana--;
}
})
const canFight = (state) => ({
fight: () => {
console.log(`${state.name} slashes at the foe!`);
state.stamina--;
}
})
const fighter = (name) => {
let state = {
name,
health: 100,
stamina: 100
}
return Object.assign(state, canFight(state));
}
const mage = (name) => {
let state = {
name,
health: 100,
mana: 100
}
return Object.assign(state, canCast(state));
}
scorcher = mage('Scorcher')
scorcher.cast('fireball'); // Scorcher casts fireball!
console.log(scorcher.mana) // 99
slasher = fighter('Slasher')
slasher.fight(); // Slasher slashes at the foe!
console.log(slasher.stamina) // 99Namármost, nekem ezzel az a problémám, hogy a kompozíció során minden egyes object instance új példányt kap ugyanabból a metódusból is, tehát tkp. elkezdjük szépen teleszemetelni a memóriát, kvázi feleslegesen. Kérdés, hogy:
1. El tudjuk-e ezt kerülni úgy, hogy a fenti kódban a canCast és canFight továbbra is pure function-ök maradjanak (mondjuk most a bennük lévő console.log miatt nem azok, de azt most gondolatban vegyük ki
)!? (Pusztán azt elérni, hogy egy metóduson osztozzanak az instance-ek, nem nehéz.)Épp most írok egy játékot, ahol object compositiont használok, százas nagyságrendben készülnek majd objektumok, és nem találtam igazán szép megoldást erre a problémára.
Új hozzászólás Aktív témák
- Xiaomi 17 Ultra - jó az optikája
- Kuponkunyeráló
- Samsung Galaxy S23 Ultra - non plus ultra
- Vigneau interaktív lokálblogja
- Tőzsde és gazdaság
- Motorola Edge 70 Fusion – stílusosan főznek
- Honor Magic6 Pro - kör közepén számok
- Eredeti játékok OFF topik
- Animációs film készül a Bloodborne-ból
- Álláskeresés, interjú, önéletrajz
- További aktív témák...
- GYÖNYÖRŰ iPhone 14 Plus 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4526
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 14 Plus 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS4458
- REFURBISHED és ÚJ - HP USB-C/A Universal Dock G2 (5TW13AA) (DisplayLink)
- Xiaomi Redmi A3 Pro / 6/128GB / Kártyafüggetlen / 12Hó garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Akad itt valaki, aki object composition (és ezzel kapcsolatos patternek, best practice-ek) terén otthonosabban mozog.
