[Javascript] Function als parameter met result

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08 14:04
Hallo,

Ik heb het bij een mooi project van een mede-gotter hier wel eens gezien, dus ik weet dat het kan, ik kan er enkel niets over vinden. Wat is zoek is eigenlijk simpel, maar net zo dat ik het niet weet :+
Ik heb dus ook geen idee hoe de namen heten waarop ik wil zoeken (geprobeerd dingen als javascript append function of parameter function, maar je krijg zoveel resultaten omdat ik gewoon niet duidelijk genoeg ben wss).

Even een snelle uitleg, vereenvoudigd, het gaat hier om (oude) code dat ik wil vereenvoudigen, het lijk mij mooi om dit volgende te kunnen doen:

code:
1
2
3
4
5
6
7
8
9
Bakkerij.maakHet( "appeltaart",  function() { alert("Bakkerij heeft " + result + " gebakken" ); }; );

// waarbij de code van maakHet zoiets zal zijn:
function maakHet(varretje, processingFunction)
{
   var result = varretje;
   // ik doe hier vanalles met result, ik verander het in bijv: "appeltaart v2"
   processingFunction();
}


Nou snap ik dat als ik processingFunction meegeeft dat het zo niet werkt, maar eigenlijk zou ik wel zo iets willen, het is die gedachtengang die ik in mijn hoofd heb. ik doe dus iets met mijn "input" in dit geval een varretje met een naam, en ik geef terug een alert met de naam van de taart die bewerkt is door die code.

Een van de problemen is hoe krijg ik een var in de functie voordat ik hem heb (ik heb hem pas in die maakHet functie). En is er misschien net iets makkelijkers om dit te doen, dat mag natuurlijk ook, let wel, moet niet té uitgebreidde oplossing worden, anders was mijn oude situatie mss overzichtelijker/beter.

Nog even over waar het echte scriptje over gaat: ben met ajax aan het stoeien, ik wil het e.e.a. stukken "mooier" schrijven. Ik wil in dit geval mijn requests aanpakken, ik wil een bepaalde request doen, en er iets op uitvoeren (een function die ik zelf maak zeg: een getelementbyid die een textje in een div wijzig ofzo, iedere keer iets anders iig).

Alvast bedankt voor uw reactie!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-11 22:35

MBV

[google=javascript callback function]

Kijk anders eens in de grotere javascript frameworks, daar zitten vast een paar mooie voorbeeldjes in.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Dat zou dan zo moeten:
JavaScript:
1
2
3
4
5
6
7
8
9
10
function Bakkerij() {}
Bakkerij.prototype.maakHet = function(varretje, processingFunction)
{
   var result = varretje;
   // ik doe hier vanalles met result, ik verander het in bijv: "appeltaart v2"
   processingFunction(result);
}

var mijnBakkerij = new Bakkerij();
mijnBakkerij.maakHet( "appeltaart",  function(result) { alert("mijnBakkerij heeft " + result + " gebakken" ); } );

[ Voor 40% gewijzigd door crisp op 10-05-2007 00:22 ]

Intentionally left blank


  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08 14:04
Allebij de reacties zeer handig!

@MBV: De callback ga ik nog even verder in lezen, volgens mij wat ik wel bedoel op een andere manier...

@crisp: En ik wist niet dat je in een parameter een functie met parameter kon maken die dan gelezen wordt uit de functie waar je heb instopt... snap de logica nog niet helemaal, maar weet wel dat het werkt (vind het wel lastig als ik niet weet waarom dit nou wel werkt, maar iig thanks) edit: ik snap het nu ;) was de zelfde naam result, maar andere var.

[ Voor 8% gewijzigd door semicon op 10-05-2007 00:26 ]


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-11 22:35

MBV

Wat jij bedoelt is dat je een functie mee wil geven om iets mee te doen. Dat heet een callback, hoe je het ook gebruikt :S