Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Decompositie | Functies
JavaScript Ninja

book
Decompositie

In dit hoofdstuk zullen we het concept van decompositie in programmeren verkennen. Decompositie is het proces van het opdelen van een complex probleem in kleinere, beter beheersbare delen. Deze aanpak maakt het niet alleen gemakkelijker om problemen op te lossen, maar helpt ook bij het organiseren van code op een meer leesbare en onderhoudbare manier.

In de context van ons Ninja-spel stelt decompositie ons in staat om functies te creëren die hergebruikt en gecombineerd kunnen worden om complexere taken uit te voeren. Door functies binnen andere functies aan te roepen, kunnen we een hiërarchie van operaties opbouwen die de algehele taak vereenvoudigt.

Laten we naar een voorbeeld kijken om te begrijpen hoe decompositie werkt:

js

ninja.js

copy
function ninjaController(ninja) {
lootTunnel(ninja);
lootTunnel(ninja);
lootTunnel(ninja);
}

function lootTunnel(ninja) {
// in
ninja.goRight();
ninja.goRight();
ninja.goRight();
ninja.goDown();
ninja.pickSushi();

// out
ninja.goUp();
ninja.goLeft();
ninja.goLeft();
ninja.goLeft();

moveToNextTunnel(ninja);
}

function moveToNextTunnel(ninja){
ninja.goDown();
ninja.goDown();
ninja.goDown();
}

In het bovenstaande voorbeeld hebben we een functie ninjaController die een andere functie lootTunnel drie keer aanroept. De functie lootTunnel zelf voert een reeks acties uit om sushi uit een tunnel te verzamelen en roept vervolgens moveToNextTunnel aan om de ninja naar de volgende tunnel te positioneren. Deze gelaagde aanpak maakt de code gemakkelijker te begrijpen en aan te passen.

Nu is het jouw beurt om decompositie te oefenen door de volgende taak te voltooien.

Taak

Swipe to start coding

Oplossing

function ninjaController(ninja) {
collectRow(ninja)
collectRow(ninja)
collectRow(ninja)
}

function collectRow(ninja) {
ninja.goRight();
ninja.pickSushi();
ninja.goRight();
ninja.pickSushi();
moveToNextRow(ninja);
}

function moveToNextRow(ninja) {
ninja.goLeft();
ninja.goLeft();
ninja.goDown();
}
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 5
js

ninja.js

function ninjaController(ninja) {
// Write your code below
}

function collectRow(ninja) {
// Write your code below
}

function moveToNextRow(ninja) {
// Write your code below
}

Vraag AI

expand
ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

We use cookies to make your experience better!
some-alt