| JavaScripts knippen en plakken |
| Op deze website vind je javascripts die je door eenvoudig knippen en plakken aan jouw site kunt toevoegen. |
| Home CSS DHTML Forum E-mail Sitezoeker Links |
|
|
|
Over het gebruik van 'prototype' Elke functie heeft een eigenschap prototype (die aanvankelijk leeg is), waarmee je nieuwe eigenschappen of methodes aan een object kunt toevoegen. Een voorbeeld: Het object array beschikt (althans momenteel nog) niet over een methode om te zoeken. Met prototype kunnen we die aan het object array toevoegen. We doen dit met Array.prototype.naam van de functie = function() (de hoofdletter aan Array is niet noodzakelijk, maar met prototype is dit gebruikelijk). Array.prototype.find = function(zoekterm) { (we voegen een methode find()' toe aan 'array' en vullen die met een - zeer eenvoudige - zoekfunctie) var gevonden = false; for (i=0; i<this.length; i++) { if (typeof(zoekterm) == 'function') { if (zoekterm.test(this[i])) { if (!gevonden) { gevonden = [] } gevonden.push(i); } } else { if (this[i].indexOf(zoekterm) != -1) { if (!gevonden) { gevonden = [] } gevonden.push(i); } } } return gevonden; } Nu kunnen we elke array doorzoeken met arraynaam.find (zoekterm). Je kunt dit hieronder testen. Als voorbeeld doorzoeken we deze array: var test=['nul','een','twee','drie','vier','vijf', 'zes','zeven','acht','negen','tien'] Zoeken naar de positie van de overeenkomst(en): Zoeken naar de waarde van de overeenkomst(en): OPMERKING 1: Het JavaScript object 'array' heeft meerdere ingebouwde methodes zoals 'sort(), join(), slice(), push(), pop(), ...'. Met behulp van 'prototype' hebben we daar een zelfgemaakte nieuwe methode 'find()' aan toegevoegd. De JavaScript machine overloopt eerst alle ingebouwde methodes en zoekt dan verder in 'Array.prototype' waar de methode 'find()' aangetroffen wordt. 'Prototype' kun je op dezelfde manier voor ieder object gebruiken. Op www.prototypejs.org kun je het script 'prototype.js' downloaden dat geregeld bijgewerkt wordt met allerhande op bovenstaande manier gemaakte JavaScript-uitbreidingen die je dan in jouw scripts kunt gebruiken. Let wel: deze find() methode voor arrays komt er (nog) niet in voor. OPMERKING 2: Gezien het hier om een demo over het gebruik van 'prototype' gaat, werd de zoekfunctie zo eenvoudig mogelijk gehouden: de zoekfunctie retourneert 'false' indien geen overeenkomst gevonden wordt, de naam van de array die doorzocht wordt moet 'test' zijn, ... . Wil je dit effectief gaan gebruiken, dan vang je deze 'kleine onvolkomenheden' beter op in jouw script. Het complete voorbeeld van deze pagina kun je hier downloaden.
|
| Copyright: Het internet is van iedereen, de volledige inhoud van deze site kan door iedereen vrij gebruikt worden. | ||