aboutsummaryrefslogtreecommitdiff
path: root/files/nl/conflicting
diff options
context:
space:
mode:
Diffstat (limited to 'files/nl/conflicting')
-rw-r--r--files/nl/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html339
-rw-r--r--files/nl/conflicting/web/api/document_object_model/index.html409
-rw-r--r--files/nl/conflicting/web/javascript/reference/global_objects/object/index.html241
3 files changed, 989 insertions, 0 deletions
diff --git a/files/nl/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html b/files/nl/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html
new file mode 100644
index 0000000000..35b2bd97f9
--- /dev/null
+++ b/files/nl/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html
@@ -0,0 +1,339 @@
+---
+title: Aan de slag (Handleiding Javascript)
+slug: Web/JavaScript/Aan_de_slag
+translation_of: Learn/Getting_started_with_the_web/JavaScript_basics
+translation_of_original: Web/JavaScript/Getting_Started
+---
+<h2 id="Why_JavaScript.3F" name="Why_JavaScript.3F">Waarom JavaScript?</h2>
+<p>JavaScript is een krachtige, ingewikkelde, en vaak misbegrepen programmeertaal. Het maakt het mogelijk om snel programma's te ontwikkelen waarin gebruikers direct informatie kunnen invullen en het resultaat kunnen zien.</p>
+<p>Het voornamelijke voordeel van JavaScript, ook wel bekend als ECMAScript, is dat het rond de Web browser draait en daardoor de mogelijkheid heeft om dezelfde resultaten te produceren op alle platformen die door de browser ondersteund worden. De voorbeelden op deze pagina, net als Google Maps, draait op Linux, Windows, en Mac OS. Met de recente groei van vele JavaScript bibliotheken is het nu nog makkelijker om door een document te navigeren, DOM elementen te selecteren, animaties te maken, gebeurtenissen af te handelen en Ajax applicaties te ontwikkelen. In tegenstelling tot de hype rondom andere technologieën die private interesses hebben is Javascript eigenlijk de enige client-side taal die op meerde platformen draait en tegelijkertijd gratis is en universeel geaccepteerd.</p>
+<h2 id="What_you_should_already_know" name="What_you_should_already_know">Wat je al zou moeten weten</h2>
+<p>JavaScript is een taal waar je makkelijk mee kunt beginnen. Alles wat je nodig hebt is een tekstverwerker en een Web browser.</p>
+<p>Er zijn vele andere technologieën die geïntegreerd kunnen worden met JavaScript, dit valt echter buiten het bestek van dit document. Verwacht niet dat je direct een enorme applicatie als Google Maps kunt maken op jouw eerste dag!</p>
+<h2 id="Getting_Started" name="Getting_Started">Aan de slag</h2>
+<p>Beginnen met JavaScript is erg makkelijk. Je hoeft geen ingewikkelde ontwikkelprogramma's geïnstalleerd te hebben. Je hoeft niet te weten hoe je een shell moet gebruiken, hoe je Make programmeert of hoe je een compiler moet gebruiken. JavaScript wordt geïnterpreteerd door jour Web browser. Alles wat je moet doen is een programma als tekstbestand opslaan en het openen in jouw Web browser. Dat is alles!</p>
+<p>JavaScript is een uitstekende programmeertaal voor beginners. Het maakt het mogelijk om direct resultaten te tonen aan de nieuwe leerling en leert hen over hulpmiddelen die zij waarschijnlijk nuttig vinden in het dagelijks leven. Dit staat in contrast met talen als C, C++ en Java die eigenlijk alleen nuttig zijn voor toegewijde software ontwikkelaars.</p>
+<h2 id="Browser_Compatibility_Issues" name="Browser_Compatibility_Issues">Browser compatibiliteitsproblemen</h2>
+<p>Er zijn variaties in de beschikbare functionaliteit in verschillende browsers. Mozilla Firefox, Microsoft Internet Explorer (MSIE of kortweg IE), Apple Safari en Opera verschillen in gedrag. We zijn van plan om <a href="/en-US/docs/JavaScript/Compatibility" title="en-US/docs/JavaScript/Compatibility">deze afwijkingen te documenteren</a>. Deze problemen kun je verminderen door het gebruik van de verschijnende cross-platform JavaScript APIs. Deze APIs bieden veelgebruikte functionaliteit en verbergen de afwijkingen voor jou.</p>
+<h2 id="How_to_try_the_Examples" name="How_to_try_the_Examples">Het proberen van voorbeelden</h2>
+<p>De onderstaande voorbeelden bevatten wat codes. Er zijn vele manieren om deze uit te proberen. Als je al een eigen website hebt, dan kun je deze als nieuwe webpagina's opslaan op jouw website.</p>
+<p>Als je nog geen eigen website hebt, dan kun je deze voorbeelden opslaan als bestanden op de computer, en deze openen in jouw huidige Web browser. Hierdoor is JavaScript ook zo'n gemakkelijke taal voor beginnende programmeurs. Je hebt geen compiler of ontwikkelomgeving nodig; alles wat je nodig hebt is een browser en jijzelf!</p>
+<h2 id="Example:_Catching_a_mouse_click" name="Example:_Catching_a_mouse_click">Voorbeeld: een muisklik opvangen</h2>
+<p>De details over het afhandelen van <em>events</em> (NL: gebeurtenissen; details zoals event typen, het registreren van verwerkers, doorgifte, enz.) zijn te uitgebreid om in dit simpele voorbeeld te behandelen. Echter, dit voorbeeld kan niet het vangen van een muisklik demonstreren zonder een beetje in te gaan op het gebeurtenissens systeem van JavaScript. Houd echter in het achterhoofd dat dit voorbeeld de volledige details over JavaScript gebeurtenissen weglaat. Als je meer te weten wilt komen naast de beginselen die hier worden beschreven, lees meer over het gebeurtenissen systeem van JavaScript.</p>
+<p>'Muis' gebeurtenissen zijn een deelverzameling van alle gebeurtenissen die een browser genereert als reactie op acties van de gebruiker. De volgende gebeurtenissen kunnen afgegeven worden als reactie op een muis actie:</p>
+<ul>
+ <li>Click - wanneer de gebruiker met de muis klikt.</li>
+ <li>DblClick - wanneer de gebruiker dubbel klikt met de muis.</li>
+ <li>MouseDown - wanneer de gebruiker een muisknop indrukt (de eerste helft van een klik).</li>
+ <li>MouseUp - wanneer de gebruiker een muisknop loslaat (de tweede helf van een klik).</li>
+ <li>MouseOut - wanneer de muiscursor de grafische grenzen van een object verlaat.</li>
+ <li>MouseOver - wanneer de muiscursor de grafische grenzen van een object betreedt.</li>
+ <li>MouseMove - wanneer de muiscursor beweegt terwijl deze zich binnen de grafische grenzen van een object bevindt.</li>
+ <li>ContextMenu - wanneer de gebruiker klikt met de rechtermuisknop.</li>
+</ul>
+<p>Merk op dat <em>inline event handlers</em> (ingesloten gebeurtenissenverwerkers, oftewel datgene dat toegevoegd is als attribuut voor een HTML element) normaliter met kleine letters geschreven zijn en dat deze in een script <em>altijd</em> met kleine letters geschreven moeten zijn.</p>
+<p>De meest simpele methode om deze gebeurtenissen af te vangen (in HTML), het registreren van <em>event handlers</em> is door individuele gebeurtenissen als attributen op te geven voor het element. Voorbeeld:</p>
+<pre class="brush:js"> &lt;span onclick="alert('Hallo Wereld!');"&gt;Klik Hier&lt;/span&gt;</pre>
+<p>De JavaScript code die je wilt uitvoeren kan ingesloten worden als attribuut waarde, of je kunt deze aanroepen als een functie. Deze functie zou dan eerder geregistreerd moeten zijn in een &lt;script&gt; blok op de HTML pagina:</p>
+<pre class="brush:js">&lt;script&gt;
+ function clickHandler() {
+ alert("Hallo, Wereld!");
+ }
+&lt;/script&gt;
+&lt;span onclick="clickHandler();"&gt;Klik Hier&lt;/span&gt;</pre>
+<p>Daarnaast is een gebeurtenisobject beschikbaar waarmee de ontwikkelaar toegang kan verkrijgen tot details van de gebeurtenis, zoals het element dat de gebeurtenis heeft ontvangen, het type van de gebeurtenis en welke muisknop werd ingedrukt. Uitbreidend op het eerdere voorbeeld:</p>
+<pre class="brush:js">&lt;script&gt;
+ function clickHandler(event) {
+ var eType = event.type;
+ /* het volgende stuk is voor compatibiliteit met oude IE versies */
+ /* Standaardbrowsers stellen de 'target' eigenschap in van het 'event' object */
+ /* IE 8 en ouder gebruikt de 'srcElement' eigenschap */
+ var eTarget = event.target || event.srcElement;
+
+ alert( "Opgevangen Gebeurtenis (type=" + eType + ", doel=" + eTarget );
+ }
+&lt;/script&gt;
+&lt;span onclick="clickHandler(event);"&gt;Klik Hier&lt;/span&gt;</pre>
+<p>Naast het registreren voor het ontvangen van gebeurtenissen in jouw HTML code kun je dezelfde attributen voor elke HTMLElement object instellen in de JavaScript code. Het onderstaande voorbeeld creërt een zogenaamde 'span' object, voegt deze toe aan de pagina en registreert tenslotte functies voor het 'span' object waarmee enkele muisgebeurtenissen kunnen worden ontvangen.</p>
+<pre class="brush:js">&lt;body&gt;&lt;/body&gt;
+&lt;script&gt;
+ function mouseeventHandler(event) {
+ /* het volgende stuk is voor compatibiliteit met oude IE versies */
+ /* IE geeft standaard NIET het event object door. */
+ /* Verkrijg eeb referentie tot de event als het niet gegeven was */
+ if (!event) event = window.event;
+
+ /* verkrijg de gebeurtenis type en doel zoals eerder beschreven */
+ var eType = event.type;
+ var eTarget = event.target || event.srcElement;
+ alert(eType + ' gebeurtenis op element met ID: ' + eTarget.id);
+ }
+
+ function onloadHandler() {
+ /* verkrijg een referentie naar de 'body' element op de pagina */
+ var body = document.body;
+ /* maak een 'span' element aan die aangeklikt moet worden */
+ var span = document.createElement('span');
+ span.id = 'VoorbeeldSpan';
+ span.appendChild(document.createTextNode('Klik Hier!'));
+
+ /* registreer enkele functies op het span object om gebeurtenissen
+ af te handelen. Merk op dat de namen van de events (on...) per se
+ kleingeschreven moeten zijn terwijl de handlers elke naam kunnen
+ aannemen.
+ */
+ span.onmousedown = mouseeventHandler;
+ span.onmouseup = mouseeventHandler;
+ span.onmouseover = mouseeventHandler;
+ span.onmouseout = mouseeventHandler;
+
+ /* weergeef de span element op de pagina */
+ body.appendChild(span);
+}
+
+// doordat we de handler vervangen, en niet aanroepen, hebben we GEEN '()' nodig
+// na de functie naam.
+window.onload = onloadHandler;
+&lt;/script&gt;</pre>
+<h2 id="Example:_Catching_a_keyboard_event" name="Example:_Catching_a_keyboard_event">Voorbeeld: een toetsenbord gebeurtenis opvangen</h2>
+<p>Het vangen van een toetsenbordgebeurtenis is vergelijkbaar met het bovenstaande "opvangen van een muisklik" voorbeeld, en maakt gebruik van het gebeurtenissen systeem in JavaScript. Toetsenbord gebeurtenissen worden afgevuurd wanneer een toets van het toetsenbord wordt gebruikt.</p>
+<p>Het aantal gebeurtenissen die optreden als reactie voor een toetsenbord actie is veel kleiner vergeleken met die voor een muis:</p>
+<ul>
+ <li>KeyPress - wanneer een toets wordt ingedrukt en losgelaten.</li>
+ <li>KeyDown - wanneer een toets wordt ingedrukt, maar nog niet losgelaten is.</li>
+ <li>KeyUp - wanneer een toets losgelaten is na het indrukken.</li>
+</ul>
+<p>Bij een <a class="new " href="/en-US/docs/DOM/event/keypress" rel="internal">keypress</a> gebeurtenis is de Unicode waarde van de ingedrukte toets opgeslagen in óf de keyCode, óf de <code><a href="/en-US/docs/DOM/event.charCode" rel="internal">charCode</a></code> eigenschap. Als de toets een karakter genereert (bijv. 'a'), dan bevat <code>charCode</code> de code van dat teken, hierbij wordt rekening gehouden met hoofdletters (d.w.z. dat er rekening wordt gehouden of de Shift toets ingedrukt is). In andere gevallen is de code van de ingedrukte toets beschikbaar in <code>keyCode</code>.</p>
+<p>De meest simpele methode om toetsenbord gebeurtenissen op te vangen is weer doot het registreren van event handlers in HTML. Hierbij wordt weer een individuele gebeurtenis opgegeven als attribuut voor het HTML element:</p>
+<pre class="brush:js"> &lt;input type="text" onkeypress="alert('Hallo Wereld!');"&gt;
+</pre>
+<p>Zoals bij muis gebeurtenissen kun je zowel inline JavaScript code gebruiken in het attribuut, of een functie aanroepen die eerder in een &lt;script&gt; block gedefinieërd was:</p>
+<pre class="brush:js">&lt;script&gt;
+ function keypressHandler() {
+ alert("Hallo, Wereld!");
+ }
+&lt;/script&gt;
+
+&lt;input onkeypress="keypressHandler();"&gt;
+</pre>
+<p>Het opvangen van de gebeurtenis en het aflezen van de ingedrukte toets kan worden gedaan op een soortgelijke manier als bij muis gebeurtenissen:</p>
+<pre class="brush:js">&lt;script&gt;
+ function keypressHandler(evt) {
+ var eType = evt.type; // Zal "keypress" bevatten als event type
+ /* hier zullen we weer een cross-browser methode gebruiken
+ Iedereen gebruikt 'which', behalve IE 8 en ouder, die gebruikt 'keyCode'
+ De <a href="/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator" title="/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator">voorwaardelijke, ternary operator</a> kan hier goed gebruikt worden */
+ var keyCode = evt.which ? evt.which : evt.keyCode;
+ var eCode = 'keyCode is ' + keyCode;
+ var eChar = 'charCode is ' + <span class="typ" style="background-color: transparent; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">String</span><span class="pun" style="background-color: transparent; color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">.</span><span class="pln" style="background-color: transparent; color: rgb(0, 0, 0); margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">fromCharCode(</span>keyCode); // of evt.charCode
+ alert("Opgevangen Gebeurtenis (type=" + eType + ", Unicode waarde van toets=" + eCode + ", ASCII waarde=" + eChar + ")");
+ }
+&lt;/script&gt;
+&lt;input onkeypress="keypressHandler(event);"&gt;</pre>
+<p>Het opvangen van alle toetsen op een pagina kan worden gedaan door het registreren van event handlers op het niveau van het document:</p>
+<pre class="brush:js">&lt;script&gt;
+ document.onkeypress = keypressHandler;
+ document.onkeydown = keypressHandler;
+ document.onkeyup = keypressHandler;
+&lt;/script&gt;</pre>
+<p>Hier is een compleet voorbeeld dat het gebruik van toetsenborden gebeurtenissen weergeeft:</p>
+<pre class="brush:js">&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+ &lt;script&gt;
+ var metaChar = false;
+ var voorbeeldToets = 16;
+ function keyEvent(event) {
+ var key = event.keyCode || event.which; // alternatief voor ternary - als er geen keyCode is, gebruik which
+ var keychar = String.fromCharCode(key);
+ if (key == voorbeeldToets) {
+ metaChar = true;
+ }
+ if (key != voorbeeldToets) {
+ if (metaChar) {
+ alert("Combinatie met Meta + " + keychar)
+ metaChar = false;
+ } else {
+ alert("Ingedrukte toets: " + key);
+ }
+ }
+ }
+ function metaKeyUp(event) {
+ var key = event.keyCode || event.which;
+ if (key == exampleKey) { metaChar = false; }
+ }
+ &lt;/script&gt;
+&lt;/head&gt;
+&lt;body onkeydown="keyEvent(event)" onkeyup="metaKeyUp(event)"&gt;
+ Druk een willekeurige toets!
+&lt;/body&gt;
+&lt;/html&gt;</pre>
+<h3 id="Browser_bugs_and_eigenaardigheden">Browser bugs and eigenaardigheden</h3>
+<p>De twee beschreven eigenschappen van toetsen gebeurtenissen zijn <code>keyCode</code> en <code>charCode</code>. In simpele termen, <code>keyCode</code> verwijst naar de werkelijke toets dat door de gebruiker ingedrukt werd terwijl <code>charCode</code> de ASCII waarde van de toets weergeeft. Deze twee waarden hoeven niet gelijk te zijn; een kleine letter 'a' en een hoofdletter 'A' hebben dezelfde keyCode omdat de gebruiker dezelfde toets indrukt, maar een andere charCode omdat de resulterende teken verschilt.</p>
+<p>De manier waarmee verschillende browser met charCode omgaan is niet overal consistent. Als voorbeeld, Internet Explorer en Opera ondersteunen <code>charCode niet</code>. Aan de andere kant geven ze de karakter informatie in keyCode, maar alleen bij de onkeypress event. De keyCode eigenschap levert voor onkeydown and onkeyup events informatie op over de toets. Firefox gebruikt een ander woord, namelijk "which" welke het verschil in de teken kan onderscheiden.</p>
+<p>Lees in de Mozilla Documentatie over <a href="/en-US/docs/DOM/Event/UIEvent/KeyboardEvent" title="https://developer.mozilla.org/en-US/docs/DOM/Event/UIEvent/KeyEvent">Keyboard Events (en)</a> voor een uitgebreidere behandeling van toetsenbord gebeurtenissen.</p>
+<h2 id="Example:_Dragging_images_around" name="Example:_Dragging_images_around">Voorbeeld: rondslepen van afbeeldingen</h2>
+<p>In het volgende voorbeeld is het mogelijk om een afbeelding in een pagina rond te slepen:</p>
+<pre class="brush:js">&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+img { position: absolute; }
+&lt;/style&gt;
+
+&lt;script&gt;
+// declareer globale variablen die hieronder wordt gebruikt.
+var mouseover, posLinks, posBoven, xCoord, yCoord;
+
+window.onload = function() {
+
+ movMeId = document.getElementById("ImgMov");
+ movMeId.style.top = "80px";
+ movMeId.style.left = "80px";
+
+ document.onmousedown = coordinates;
+ document.onmouseup = mouseup;
+
+ function coordinates(e) {
+ if (e == null) { e = window.event;}
+
+ // e.srcElement bevat het doel element in IE8 en ouder,
+ // e.target wordt gebruikt in standaardbrowsers (inclusief Firefox)
+ // Beide eigenschappen geven het HTML element waarin het event optrad
+
+ var sender = (typeof( window.event ) != "undefined" ) ? e.srcElement : e.target;
+
+ if (sender.id == "ImgMov") {
+ mouseover = true;
+ posLinks = parseInt(movMeId.style.left);
+ posBoven = parseInt(movMeId.style.top);
+ xCoord = e.clientX;
+ yCoord = e.clientY;
+ document.onmousemove = moveImage;
+ return false;
+ } else {
+ return false;
+ }
+ }
+
+ function moveImage(e) {
+ if (e == null) { e = window.event; }
+ movMeId.style.left = posLinks + e.clientX - xCoord + "px";
+ movMeId.style.top = posBoven + e.clientY - yCoord + "px";
+ return false;
+ }
+
+ function mouseup(e) {
+ // voorkom dat de moveImage functie wordt aangeroepen door de
+ // gebeurtenis registratie te verwijderen.
+ document.onmousemove = null;
+ }
+}
+&lt;/script&gt;
+&lt;/head&gt;
+
+&lt;body&gt;
+ &lt;img id="ImgMov" src="http://placehold.it/100x100&amp;text=JS" width="64" height="64"&gt;
+ &lt;p&gt;Sleep en zet het plaatje op deze pagina neer&lt;/p&gt;
+&lt;/body&gt;
+
+&lt;/html&gt;</pre>
+<h2 id="Example:_Resizing_things" name="Example:_Resizing_things">Voorbeeld: vergroot of verklein objecten</h2>
+<div>
+ <p>Voorbeeld waarbij de grootte van een afbeelding wordt gewijzigd (de originele afbeelding wordt niet gewijzigd, enkel hoe deze op de pagina weergeven wordt).</p>
+ <pre class="brush:js"> &lt;!DOCTYPE html&gt;
+ &lt;html&gt;
+   &lt;head&gt;
+     &lt;style&gt;
+       #resizeImage {
+         margin-left: 100px;
+       }
+     &lt;/style&gt;
+     &lt;script&gt;
+     window.onload = function() {
+
+       var resizeId = document.getElementById("resizeImage");
+       var resizeStartCoordsX,
+           resizeStartCoordsY,
+           resizeEndCoordsX,
+           resizeEndCoordsY;
+
+       var resizeEndCoords;
+       var resizing = false;
+
+       document.onmousedown = coordinatesMousedown;
+       document.onmouseup = coordinatesMouseup;
+
+       function coordinatesMousedown(e) {
+         if (e == null) {
+           e = window.event;
+         }
+
+         var element = (typeof( window.event ) != 'undefined' ) ? e.srcElement : e.target;
+
+         if (element.id == "resizeImage") {
+           resizing = true;
+           resizeStartCoordsX = e.clientX;
+           resizeStartCoordsY = e.clientY;
+         }
+         return false;
+       }
+
+       function coordinatesMouseup(e) {
+         if (e == null) {
+           e = window.event;
+         }
+
+         if (resizing === true) {
+           var currentImageWidth = parseInt(resizeId.width);
+           var currentImageHeight = parseInt(resizeId.height);
+
+           resizeEndCoordsX = e.clientX;
+           resizeEndCoordsY = e.clientY;
+
+           resizeId.style.height = currentImageHeight - (resizeStartCoordsY - resizeEndCoordsY) + 'px';
+           resizeId.style.width = currentImageWidth - (resizeStartCoordsX - resizeEndCoordsX) + 'px';
+
+           resizing = false;
+         }
+         return false;
+       }
+     }
+     &lt;/script&gt;
+   &lt;/head&gt;
+
+   &lt;body&gt;
+     &lt;img id="resizeImage" src="http://upload.wikimedia.org/wikipedia/commons/e/e7/Mozilla_Firefox_3.5_logo_256.png"
+width="64" height="64"&gt;
+     &lt;p&gt;Klik op het plaatje en sleep om de grootte te wijzigen.&lt;/p&gt;
+   &lt;/body&gt;
+
+ &lt;/html&gt;</pre>
+</div>
+<h2 id="Example:_Drawing_Lines" name="Example:_Drawing_Lines">Voorbeeld: lijnen tekenen</h2>
+<pre class="brush: html">&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+function linedraw(ax,ay,bx,by)
+{
+    if(ay&gt;by)
+    {
+        bx=ax+bx;
+        ax=bx-ax;
+        bx=bx-ax;
+        by=ay+by;
+        ay=by-ay;
+        by=by-ay;
+    }
+    var calc=Math.atan((ay-by)/(bx-ax));
+    calc=calc*180/Math.PI;
+    var length=Math.sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
+    document.body.innerHTML += "&lt;div id='line' style='height:" + length + "px;width:1px;background-color:black;position:absolute;top:" + (ay) + "px;left:" + (ax) + "px;transform:rotate(" + calc + "deg);-ms-transform:rotate(" + calc + "deg);transform-origin:0% 0%;-moz-transform:rotate(" + calc + "deg);-moz-transform-origin:0% 0%;-webkit-transform:rotate(" + calc  + "deg);-webkit-transform-origin:0% 0%;-o-transform:rotate(" + calc + "deg);-o-transform-origin:0% 0%;'&gt;&lt;/div&gt;"
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=linedraw(200,400,500,900);&gt; &lt;!-- Replace with your co-ordinate --&gt;
+&lt;/body&gt;
+&lt;/html&gt;</pre>
+<p> </p>
diff --git a/files/nl/conflicting/web/api/document_object_model/index.html b/files/nl/conflicting/web/api/document_object_model/index.html
new file mode 100644
index 0000000000..7caa501c32
--- /dev/null
+++ b/files/nl/conflicting/web/api/document_object_model/index.html
@@ -0,0 +1,409 @@
+---
+title: DOM
+slug: DOM
+tags:
+ - DOM
+translation_of: Web/API/Document_Object_Model
+translation_of_original: DOM
+---
+<p>The <strong>Document Object Model (<em>DOM</em>)</strong> is a programming interface for HTML, XML and SVG documents. It provides a structured representation of the document (a tree) and it defines a way that the structure can be accessed from programs so that they can change the document structure, style and content. The DOM provides a representation of the document as a structured group of nodes and objects that have properties and methods. Nodes can also have event handlers attached to them, and once that event is triggered the event handlers get executed. Essentially, it connects web pages to scripts or programming languages.</p>
+
+<p>Though often accessed using JavaScript, the DOM itself is not a part of the JavaScript language, and it can be accessed by other languages, though this is much less common.</p>
+
+<p>An <a href="/en-US/docs/DOM/DOM_Reference/Introduction">introduction</a> to the DOM is available.</p>
+
+<h2 id="DOM_interfaces">DOM interfaces</h2>
+
+<div class="index">
+<ul>
+ <li>{{domxref("Attr")}}</li>
+ <li>{{domxref("CharacterData")}}</li>
+ <li>{{domxref("ChildNode")}} {{experimental_inline}}</li>
+ <li>{{domxref("Comment")}}</li>
+ <li>{{domxref("CustomEvent")}}</li>
+ <li>{{domxref("Document")}}</li>
+ <li>{{domxref("DocumentFragment")}}</li>
+ <li>{{domxref("DocumentType")}}</li>
+ <li>{{domxref("DOMError")}}</li>
+ <li>{{domxref("DOMException")}}</li>
+ <li>{{domxref("DOMImplementation")}}</li>
+ <li>{{domxref("DOMString")}}</li>
+ <li>{{domxref("DOMTimeStamp")}}</li>
+ <li>{{domxref("DOMSettableTokenList")}}</li>
+ <li>{{domxref("DOMStringList")}}</li>
+ <li>{{domxref("DOMTokenList")}}</li>
+ <li>{{domxref("Element")}}</li>
+ <li>{{domxref("Event")}}</li>
+ <li>{{domxref("EventTarget")}}</li>
+ <li>{{domxref("HTMLCollection")}}</li>
+ <li>{{domxref("MutationObserver")}}</li>
+ <li>{{domxref("MutationRecord")}}</li>
+ <li>{{domxref("Node")}}</li>
+ <li>{{domxref("NodeFilter")}}</li>
+ <li>{{domxref("NodeIterator")}}</li>
+ <li>{{domxref("NodeList")}}</li>
+ <li>{{domxref("ParentNode")}} {{experimental_inline}}</li>
+ <li>{{domxref("ProcessingInstruction")}}</li>
+ <li>{{domxref("Promise")}} {{experimental_inline}}</li>
+ <li>{{domxref("PromiseResolver")}} {{experimental_inline}}</li>
+ <li>{{domxref("Range")}}</li>
+ <li>{{domxref("Text")}}</li>
+ <li>{{domxref("TreeWalker")}}</li>
+ <li>{{domxref("URL")}}</li>
+ <li>{{domxref("Window")}}</li>
+ <li>{{domxref("Worker")}}</li>
+ <li>{{domxref("XMLDocument")}} {{experimental_inline}}</li>
+</ul>
+</div>
+
+<h2 id="Obsolete_DOM_interfaces">Obsolete DOM interfaces</h2>
+
+<p>The Document Object Model is being highly simplified. In order to achieve this the following interfaces present in the different DOM level 3 or earlier specification have been removed. It is still unclear if some may be reintroduced, but for the moment they have to be considered as obsolete and should be avoided:</p>
+
+<div class="index">
+<ul>
+ <li>{{domxref("CDATASection")}}</li>
+ <li>{{domxref("DOMConfiguration")}}</li>
+ <li>{{domxref("DOMErrorHandler")}}</li>
+ <li>{{domxref("DOMImplementationList")}}</li>
+ <li>{{domxref("DOMImplementationRegistry")}}</li>
+ <li>{{domxref("DOMImplementationSource")}}</li>
+ <li>{{domxref("DOMLocator")}}</li>
+ <li>{{domxref("DOMObject")}}</li>
+ <li>{{domxref("DOMUserData")}}</li>
+ <li>{{domxref("Entity")}}</li>
+ <li>{{domxref("EntityReference")}}</li>
+ <li>{{domxref("NamedNodeMap")}}</li>
+ <li>{{domxref("NameList")}}</li>
+ <li>{{domxref("Notation")}}</li>
+ <li>{{domxref("TypeInfo")}}</li>
+ <li>{{domxref("UserDataHandler")}}</li>
+ <li> </li>
+</ul>
+</div>
+
+<h2 id="HTML_interfaces">HTML interfaces</h2>
+
+<p>A document containing HTML is described using the {{domxref("HTMLDocument")}} interface. Note that the HTML specification also extends the {{domxref("Document")}} interface.</p>
+
+<p>An <code>HTMLDocument</code> object also gives access to browser features: the tab, or window, in which a page is drawn using the {{domxref("Window")}} interface, the {{domxref("window.style", "Style")}} associated to it (usually CSS), the history of the browser relative to the context, {{domxref("window.history", "History")}} , eventually a {{domxref("Selection")}} done on the document.</p>
+
+<h3 id="HTML_element_interfaces">HTML element interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("HTMLAnchorElement")}}</li>
+ <li>{{domxref("HTMLAppletElement")}}</li>
+ <li>{{domxref("HTMLAreaElement")}}</li>
+ <li>{{domxref("HTMLAudioElement")}}</li>
+ <li>{{domxref("HTMLBaseElement")}}</li>
+ <li>{{domxref("HTMLBodyElement")}}</li>
+ <li>{{domxref("HTMLBRElement")}}</li>
+ <li>{{domxref("HTMLButtonElement")}}</li>
+ <li>{{domxref("HTMLCanvasElement")}}</li>
+ <li>{{domxref("HTMLDataElement")}}</li>
+ <li>{{domxref("HTMLDataListElement")}}</li>
+ <li>{{domxref("HTMLDirectoryElement")}}</li>
+ <li>{{domxref("HTMLDivElement")}}</li>
+ <li>{{domxref("HTMLDListElement")}}</li>
+ <li>{{domxref("HTMLElement")}}</li>
+ <li>{{domxref("HTMLEmbedElement")}}</li>
+ <li>{{domxref("HTMLFieldSetElement")}}</li>
+ <li>{{domxref("HTMLFontElement")}}</li>
+ <li>{{domxref("HTMLFormElement")}}</li>
+ <li>{{domxref("HTMLFrameElement")}}</li>
+ <li>{{domxref("HTMLFrameSetElement")}}</li>
+ <li>{{domxref("HTMLHeadElement")}}</li>
+ <li>{{domxref("HTMLHeadingElement")}}</li>
+ <li>{{domxref("HTMLHtmlElement")}}</li>
+ <li>{{domxref("HTMLHRElement")}}</li>
+ <li>{{domxref("HTMLIFrameElement")}}</li>
+ <li>{{domxref("HTMLImageElement")}}</li>
+ <li>{{domxref("HTMLInputElement")}}</li>
+ <li>{{domxref("HTMLKeygenElement")}}</li>
+ <li>{{domxref("HTMLLabelElement")}}</li>
+ <li>{{domxref("HTMLLegendElement")}}</li>
+ <li>{{domxref("HTMLLIElement")}}</li>
+ <li>{{domxref("HTMLLinkElement")}}</li>
+ <li>{{domxref("HTMLMapElement")}}</li>
+ <li>{{domxref("HTMLMediaElement")}}</li>
+ <li>{{domxref("HTMLMenuElement")}}</li>
+ <li>{{domxref("HTMLMetaElement")}}</li>
+ <li>{{domxref("HTMLMeterElement")}}</li>
+ <li>{{domxref("HTMLModElement")}}</li>
+ <li>{{domxref("HTMLObjectElement")}}</li>
+ <li>{{domxref("HTMLOListElement")}}</li>
+ <li>{{domxref("HTMLOptGroupElement")}}</li>
+ <li>{{domxref("HTMLOptionElement")}}</li>
+ <li>{{domxref("HTMLOutputElement")}}</li>
+ <li>{{domxref("HTMLParagraphElement")}}</li>
+ <li>{{domxref("HTMLParamElement")}}</li>
+ <li>{{domxref("HTMLPreElement")}}</li>
+ <li>{{domxref("HTMLProgressElement")}}</li>
+ <li>{{domxref("HTMLQuoteElement")}}</li>
+ <li>{{domxref("HTMLScriptElement")}}</li>
+ <li>{{domxref("HTMLSelectElement")}}</li>
+ <li>{{domxref("HTMLSourceElement")}}</li>
+ <li>{{domxref("HTMLSpanElement")}}</li>
+ <li>{{domxref("HTMLStyleElement")}}</li>
+ <li>{{domxref("HTMLTableElement")}}</li>
+ <li>{{domxref("HTMLTableCaptionElement")}}</li>
+ <li>{{domxref("HTMLTableCellElement")}}</li>
+ <li>{{domxref("HTMLTableDataCellElement")}}</li>
+ <li>{{domxref("HTMLTableHeaderCellElement")}}</li>
+ <li>{{domxref("HTMLTableColElement")}}</li>
+ <li>{{domxref("HTMLTableRowElement")}}</li>
+ <li>{{domxref("HTMLTableSectionElement")}}</li>
+ <li>{{domxref("HTMLTextAreaElement")}}</li>
+ <li>{{domxref("HTMLTimeElement")}}</li>
+ <li>{{domxref("HTMLTitleElement")}}</li>
+ <li>{{domxref("HTMLTrackElement")}}</li>
+ <li>{{domxref("HTMLUListElement")}}</li>
+ <li>{{domxref("HTMLUnknownElement")}}</li>
+ <li>{{domxref("HTMLVideoElement")}}</li>
+</ul>
+</div>
+
+<h3 id="Other_interfaces">Other interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("CanvasRenderingContext2D")}}</li>
+ <li>{{domxref("CanvasGradient")}}</li>
+ <li>{{domxref("CanvasPattern")}}</li>
+ <li>{{domxref("TextMetrics")}}</li>
+ <li>{{domxref("ImageData")}}</li>
+ <li>{{domxref("CanvasPixelArray")}}</li>
+ <li>{{domxref("NotifyAudioAvailableEvent")}}</li>
+ <li>{{domxref("HTMLAllCollection")}}</li>
+ <li>{{domxref("HTMLFormControlsCollection")}}</li>
+ <li>{{domxref("HTMLOptionsCollection")}}</li>
+ <li>{{domxref("HTMLPropertiesCollection")}}</li>
+ <li>{{domxref("DOMStringMap")}}</li>
+ <li>{{domxref("RadioNodeList")}}</li>
+ <li>{{domxref("MediaError")}}</li>
+</ul>
+</div>
+
+<h3 id="Obsolete_HTML_interfaces">Obsolete HTML interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("HTMLBaseFontElement")}}</li>
+ <li>{{domxref("HTMLIsIndexElement")}}</li>
+</ul>
+</div>
+
+<h2 id="SVG_interfaces">SVG interfaces</h2>
+
+<h3 id="SVG_element_interfaces">SVG element interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("SVGAElement")}}</li>
+ <li>{{domxref("SVGAltGlyphElement")}}</li>
+ <li>{{domxref("SVGAltGlyphDefElement")}}</li>
+ <li>{{domxref("SVGAltGlyphItemElement")}}</li>
+ <li>{{domxref("SVGAnimationElement")}}</li>
+ <li>{{domxref("SVGAnimateElement")}}</li>
+ <li>{{domxref("SVGAnimateColorElement")}}</li>
+ <li>{{domxref("SVGAnimateMotionElement")}}</li>
+ <li>{{domxref("SVGAnimateTransformElement")}}</li>
+ <li>{{domxref("SVGCircleElement")}}</li>
+ <li>{{domxref("SVGClipPathElement")}}</li>
+ <li>{{domxref("SVGColorProfileElement")}}</li>
+ <li>{{domxref("SVGComponentTransferFunctionElement")}}</li>
+ <li>{{domxref("SVGCursorElement")}}</li>
+ <li>{{domxref("SVGDefsElement")}}</li>
+ <li>{{domxref("SVGDescElement")}}</li>
+ <li>{{domxref("SVGElement")}}</li>
+ <li>{{domxref("SVGEllipseElement")}}</li>
+ <li>{{domxref("SVGFEBlendElement")}}</li>
+ <li>{{domxref("SVGFEColorMatrixElement")}}</li>
+ <li>{{domxref("SVGFEComponentTransferElement")}}</li>
+ <li>{{domxref("SVGFECompositeElement")}}</li>
+ <li>{{domxref("SVGFEConvolveMatrixElement")}}</li>
+ <li>{{domxref("SVGFEDiffuseLightingElement")}}</li>
+ <li>{{domxref("SVGFEDisplacementMapElement")}}</li>
+ <li>{{domxref("SVGFEDistantLightElement")}}</li>
+ <li>{{domxref("SVGFEFloodElement")}}</li>
+ <li>{{domxref("SVGFEGaussianBlurElement")}}</li>
+ <li>{{domxref("SVGFEImageElement")}}</li>
+ <li>{{domxref("SVGFEMergeElement")}}</li>
+ <li>{{domxref("SVGFEMergeNodeElement")}}</li>
+ <li>{{domxref("SVGFEMorphologyElement")}}</li>
+ <li>{{domxref("SVGFEOffsetElement")}}</li>
+ <li>{{domxref("SVGFEPointLightElement")}}</li>
+ <li>{{domxref("SVGFESpecularLightingElement")}}</li>
+ <li>{{domxref("SVGFESpotLightElement")}}</li>
+ <li>{{domxref("SVGFETileElement")}}</li>
+ <li>{{domxref("SVGFETurbulenceElement")}}</li>
+ <li>{{domxref("SVGFEFuncRElement")}}</li>
+ <li>{{domxref("SVGFEFuncGElement")}}</li>
+ <li>{{domxref("SVGFEFuncBElement")}}</li>
+ <li>{{domxref("SVGFEFuncAElement")}}</li>
+ <li>{{domxref("SVGFilterElement")}}</li>
+ <li>{{domxref("SVGFilterPrimitiveStandardAttributes")}}</li>
+ <li>{{domxref("SVGFontElement")}}</li>
+ <li>{{domxref("SVGFontFaceElement")}}</li>
+ <li>{{domxref("SVGFontFaceFormatElement")}}</li>
+ <li>{{domxref("SVGFontFaceNameElement")}}</li>
+ <li>{{domxref("SVGFontFaceSrcElement")}}</li>
+ <li>{{domxref("SVGFontFaceUriElement")}}</li>
+ <li>{{domxref("SVGForeignObjectElement")}}</li>
+ <li>{{domxref("SVGGElement")}}</li>
+ <li>{{domxref("SVGGlyphElement")}}</li>
+ <li>{{domxref("SVGGlyphRefElement")}}</li>
+ <li>{{domxref("SVGGradientElement")}}</li>
+ <li>{{domxref("SVGHKernElement")}}</li>
+ <li>{{domxref("SVGImageElement")}}</li>
+ <li>{{domxref("SVGLinearGradientElement")}}</li>
+ <li>{{domxref("SVGLineElement")}}</li>
+ <li>{{domxref("SVGMarkerElement")}}</li>
+ <li>{{domxref("SVGMaskElement")}}</li>
+ <li>{{domxref("SVGMetadataElement")}}</li>
+ <li>{{domxref("SVGMissingGlyphElement")}}</li>
+ <li>{{domxref("SVGMPathElement")}}</li>
+ <li>{{domxref("SVGPathElement")}}</li>
+ <li>{{domxref("SVGPatternElement")}}</li>
+ <li>{{domxref("SVGPolylineElement")}}</li>
+ <li>{{domxref("SVGPolygonElement")}}</li>
+ <li>{{domxref("SVGRadialGradientElement")}}</li>
+ <li>{{domxref("SVGRectElement")}}</li>
+ <li>{{domxref("SVGScriptElement")}}</li>
+ <li>{{domxref("SVGSetElement")}}</li>
+ <li>{{domxref("SVGStopElement")}}</li>
+ <li>{{domxref("SVGStyleElement")}}</li>
+ <li>{{domxref("SVGSVGElement")}}</li>
+ <li>{{domxref("SVGSwitchElement")}}</li>
+ <li>{{domxref("SVGSymbolElement")}}</li>
+ <li>{{domxref("SVGTextElement")}}</li>
+ <li>{{domxref("SVGTextPathElement")}}</li>
+ <li>{{domxref("SVGTitleElement")}}</li>
+ <li>{{domxref("SVGTRefElement")}}</li>
+ <li>{{domxref("SVGTSpanElement")}}</li>
+ <li>{{domxref("SVGUseElement")}}</li>
+ <li>{{domxref("SVGViewElement")}}</li>
+ <li>{{domxref("SVGVKernElement")}}</li>
+</ul>
+</div>
+
+<h3 id="SVG_data_type_interfaces">SVG data type interfaces</h3>
+
+<p>Here are the DOM API for data types used in the definitions of SVG properties and attributes.</p>
+
+<div class="note">
+<p><strong>Note:</strong> Starting in {{Gecko("5.0")}},the following SVG-related DOM interfaces representing lists of objects are now indexable and can be accessed like arrays; in addition, they have a length property indicating the number of items in the lists: {{domxref("SVGLengthList")}}, {{domxref("SVGNumberList")}}, {{domxref("SVGPathSegList")}}, and {{domxref("SVGPointList")}}.</p>
+</div>
+
+<h4 id="Static_type">Static type</h4>
+
+<div class="index">
+<ul>
+ <li>{{domxref("SVGAngle")}}</li>
+ <li>{{domxref("SVGColor")}}</li>
+ <li>{{domxref("SVGICCColor")}}</li>
+ <li>{{domxref("SVGElementInstance")}}</li>
+ <li>{{domxref("SVGElementInstanceList")}}</li>
+ <li>{{domxref("SVGLength")}}</li>
+ <li>{{domxref("SVGLengthList")}}</li>
+ <li>{{domxref("SVGMatrix")}}</li>
+ <li>{{domxref("SVGNumber")}}</li>
+ <li>{{domxref("SVGNumberList")}}</li>
+ <li>{{domxref("SVGPaint")}}</li>
+ <li>{{domxref("SVGPoint")}}</li>
+ <li>{{domxref("SVGPointList")}}</li>
+ <li>{{domxref("SVGPreserveAspectRatio")}}</li>
+ <li>{{domxref("SVGRect")}}</li>
+ <li>{{domxref("SVGStringList")}}</li>
+ <li>{{domxref("SVGTransform")}}</li>
+ <li>{{domxref("SVGTransformList")}}</li>
+</ul>
+</div>
+
+<h4 id="Animated_type">Animated type</h4>
+
+<div class="index">
+<ul>
+ <li>{{domxref("SVGAnimatedAngle")}}</li>
+ <li>{{domxref("SVGAnimatedBoolean")}}</li>
+ <li>{{domxref("SVGAnimatedEnumeration")}}</li>
+ <li>{{domxref("SVGAnimatedInteger")}}</li>
+ <li>{{domxref("SVGAnimatedLength")}}</li>
+ <li>{{domxref("SVGAnimatedLengthList")}}</li>
+ <li>{{domxref("SVGAnimatedNumber")}}</li>
+ <li>{{domxref("SVGAnimatedNumberList")}}</li>
+ <li>{{domxref("SVGAnimatedPreserveAspectRatio")}}</li>
+ <li>{{domxref("SVGAnimatedRect")}}</li>
+ <li>{{domxref("SVGAnimatedString")}}</li>
+ <li>{{domxref("SVGAnimatedTransformList")}}</li>
+</ul>
+</div>
+
+<h3 id="SVG_Path_segment_interfaces">SVG Path segment interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("SVGPathSegList")}}</li>
+ <li>{{domxref("SVGPathSeg")}}</li>
+ <li>{{domxref("SVGPathSegArcAbs")}}</li>
+ <li>{{domxref("SVGPathSegArcRel")}}</li>
+ <li>{{domxref("SVGPathSegClosePath")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoCubicAbs")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoCubicRel")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoCubicSmoothAbs")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoCubicSmoothRel")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoQuadraticAbs")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoQuadraticRel")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoQuadraticSmoothAbs")}}</li>
+ <li>{{domxref("SVGPathSegCurvetoQuadraticSmoothRel")}}</li>
+ <li>{{domxref("SVGPathSegLinetoAbs")}}</li>
+ <li>{{domxref("SVGPathSegLinetoHorizontalAbs")}}</li>
+ <li>{{domxref("SVGPathSegLinetoHorizontalRel")}}</li>
+ <li>{{domxref("SVGPathSegLinetoRel")}}</li>
+ <li>{{domxref("SVGPathSegLinetoVerticalAbs")}}</li>
+ <li>{{domxref("SVGPathSegLinetoVerticalRel")}}</li>
+ <li>{{domxref("SVGPathSegMovetoAbs")}}</li>
+ <li>{{domxref("SVGPathSegMovetoRel")}}</li>
+</ul>
+</div>
+
+<h3 id="SMIL_related_interfaces">SMIL related interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("ElementTimeControl")}}</li>
+ <li>{{domxref("TimeEvent")}}</li>
+</ul>
+</div>
+
+<h3 id="Other_SVG_interfaces">Other SVG interfaces</h3>
+
+<div class="index">
+<ul>
+ <li>{{domxref("SVGAnimatedPathData")}}</li>
+ <li>{{domxref("SVGAnimatedPoints")}}</li>
+ <li>{{domxref("SVGColorProfileRule")}}</li>
+ <li>{{domxref("SVGCSSRule")}}</li>
+ <li>{{domxref("SVGExternalResourcesRequired")}}</li>
+ <li>{{domxref("SVGFitToViewBox")}}</li>
+ <li>{{domxref("SVGLangSpace")}}</li>
+ <li>{{domxref("SVGLocatable")}}</li>
+ <li>{{domxref("SVGRenderingIntent")}}</li>
+ <li>{{domxref("SVGStylable")}}</li>
+ <li>{{domxref("SVGTests")}}</li>
+ <li>{{domxref("SVGTextContentElement")}}</li>
+ <li>{{domxref("SVGTextPositioningElement")}}</li>
+ <li>{{domxref("SVGTransformable")}}</li>
+ <li>{{domxref("SVGUnitTypes")}}</li>
+ <li>{{domxref("SVGURIReference")}}</li>
+ <li>{{domxref("SVGViewSpec")}}</li>
+ <li>{{domxref("SVGZoomAndPan")}}</li>
+</ul>
+</div>
+
+<h2 id="See_also" name="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/DOM/DOM_Reference/Examples">DOM Examples</a></li>
+</ul>
diff --git a/files/nl/conflicting/web/javascript/reference/global_objects/object/index.html b/files/nl/conflicting/web/javascript/reference/global_objects/object/index.html
new file mode 100644
index 0000000000..8fcfcbfa59
--- /dev/null
+++ b/files/nl/conflicting/web/javascript/reference/global_objects/object/index.html
@@ -0,0 +1,241 @@
+---
+title: Object.prototype
+slug: Web/JavaScript/Reference/Global_Objects/Object/prototype
+tags:
+ - JavaScript
+ - Object
+ - Property
+translation_of: Web/JavaScript/Reference/Global_Objects/Object
+translation_of_original: Web/JavaScript/Reference/Global_Objects/Object/prototype
+---
+<div>{{JSRef}}</div>
+
+<p>De Object.prototype eigenschap vertegenwoordigt het {{jsxref("Object")}} prototype object.</p>
+
+<p>{{js_property_attributes(0, 0, 0)}}</p>
+
+<h2 id="Beschrijving">Beschrijving</h2>
+
+<p>Alle objecten in JavaScript zijn afstammelingen van het {{jsxref("Object")}}; alle objecten erven methode's en eigenschappen van Object.prototype, althans kunnen ze overschreden worden (behalve een Object met een null prototype, i.e Object.create(null)). Bijvoorbeeld, een andere constructors' prototypes overschrijden de constructor eigenschap en voorzien hun eigen  {{jsxref("Object.prototype.toString()", "toString()")}} methode's.</p>
+
+<p>Veranderingen in het Object prototype object zijn zichtbaar voor alle objecten door prototype chaining, tenzij de eigenschappen en methode's onderworpen door deze veranderingen worden overschreden verderop de prototype chain. Dit voorziet een vrij krachtig althans potentieel gevaarlijk mechanisme om het gedrag van een object te overschrijden of aan te vullen.</p>
+
+<h2 id="Eigenschappen">Eigenschappen</h2>
+
+<dl>
+ <dt>{{jsxref("Object.prototype.constructor")}}</dt>
+ <dd>Beschrijft de functie dat het object's prototype aanmaakt.</dd>
+ <dd><strong style="font-weight: 700;">{{jsxref("Object.prototype.__proto__")}} {{non-standard_inline}}</strong></dd>
+ <dd>Wijst aan het object welke was bebruikt als prototype wanneer het object was geinstantieerd.</dd>
+ <dd>{{jsxref("Object.prototype.__noSuchMethod__")}} {{non-standard_inline}}</dd>
+ <dd>Laat het toe om een functie te definieeren dat zal worden uitgevoerd wanneer een ongedefinieerd lid van een object word geroepen als een methode. </dd>
+ <dd><s class="obsoleteElement">{{jsxref("Object.prototype.count","Object.prototype.__count__")}} {{obsolete_inline}}</s></dd>
+ <dd><s class="obsoleteElement">Used to return the number of enumerable properties directly on a user-defined object, but has been removed.</s></dd>
+ <dt><s class="obsoleteElement">{{jsxref("Object.prototype.parent","Object.prototype.__parent__")}} {{obsolete_inline}}</s></dt>
+ <dd><s class="obsoleteElement">Used to point to an object's context, but has been removed.</s></dd>
+</dl>
+
+<h2 id="Methode's">Methode's</h2>
+
+<dl>
+ <dt>{{jsxref("Object.prototype.__defineGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt>
+ <dd>Associeert een functie met een eigenschap dat, wanneer toegankelijk, een functie uitvoerd en zijn keert zijn return waarde terug.</dd>
+ <dd>{{jsxref("Object.prototype.__defineSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dd>
+ <dd>Associeert een functie met een eigenschap dat, wanneer gezet, een functie uitvoerd dat de eigenchap veranderd.</dd>
+ <dt>{{jsxref("Object.prototype.__lookupGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt>
+ <dd>Keert de functie geassocieert met de gespecificieerde eigenschap door de {{jsxref("Object.prototype.__defineGetter__()", "__defineGetter__()")}} methode.</dd>
+ <dt>{{jsxref("Object.prototype.__lookupSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt>
+ <dd>Keert de functie geassocieert met de gespecificieerde eigenschap door de {{jsxref("Object.prototype.__defineSetter__()", "__defineSetter__()")}} method.</dd>
+ <dt>{{jsxref("Object.prototype.hasOwnProperty()")}}</dt>
+ <dd>Keert een boolean terug die aanwijst of een object dat de eigenschap bevat als een directe eigenschap van dat object en niet wordt geerfd door de prototype chain.</dd>
+ <dd><strong style="font-weight: 700;">{{jsxref("Object.prototype.isPrototypeOf()")}}</strong></dd>
+ <dd>Keert een boolean waarde terug die aanwijst of het object in de prototype chain zit van het object van waaruit deze methode is geroepen.</dd>
+ <dd><strong style="font-weight: 700;">{{jsxref("Object.prototype.propertyIsEnumerable()")}}</strong></dd>
+ <dd>Keert een boolean waarde terug die aanwijst of de <a href="/en-US/docs/Web/JavaScript/Data_structures#Properties">ECMAScript [[Enumerable]] attribute</a> is gezet.</dd>
+ <dt>{{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}</dt>
+ <dd>Keert een string terug die de bron van een object zijn literal, die het object waarop deze methode word op geroepen represedenteerd; je kan deze waarde gebruiken om een niew object te maken.</dd>
+ <dd>{{jsxref("Object.prototype.toLocaleString()")}}</dd>
+ <dd>Roept {{jsxref("Object.toString", "toString()")}}.</dd>
+ <dt>{{jsxref("Object.prototype.toString()")}}</dt>
+ <dd>Keert een string representatie terug van het object.</dd>
+ <dd><strong style="font-weight: 700;">{{jsxref("Object.prototype.unwatch()")}} {{non-standard_inline}}</strong></dd>
+ <dd>Verwijderd een watchpoint van een eigenschap van het object.</dd>
+ <dd><strong style="font-weight: 700;">{{jsxref("Object.prototype.valueOf()")}}</strong></dd>
+ <dd>Keert een primitive waarde terug van het gespecifieerde object.</dd>
+ <dd><strong style="font-weight: 700;">{{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}</strong></dd>
+ <dd>Voegt een watchpoint toe aan de eigenschap van het object.</dd>
+ <dd><s class="obsoleteElement" style="font-weight: 700;">{{jsxref("Object.prototype.eval()")}} {{obsolete_inline}}</s></dd>
+ <dd><s class="obsoleteElement">Used to evaluate a string of JavaScript code in the context of the specified object, but has been removed.</s></dd>
+</dl>
+
+<h2 id="Voorbeelden">Voorbeelden</h2>
+
+<p>Als het gedrag van bestaande Object.prototype's methode's worden veranderd, overweeg code te injecteren door je uitbreiding in te wikkelen voor of achter de bestaande logica. Bijvoorbeeld, deze (ongeteste) code zal onvoorwaardelijk aangepaste logica uitvoeren vooralleer de ingebouwde logica of anderman's uitbreiding word uitgevoerd.</p>
+
+<p>Wanneer een functie is geroepen zullen de argumenten worden gehouden in de array-achtige "variable" van de argumenten. Bijvoorbeeld, in de call "myFn(a, b, c)", zullen de argumenten binnenin myFn's lichaam 3 array elementen bevatten die coressponderen tot (a, b, c).  Wanneer prototype's met haken worden bijgewerkt, voer simpelweg deze &amp; de argementen (de call toestand) toe aan het huidig gedrag door apply() te roepen op de functie. Dit patroon can worden gebruikt voor elk prototype, zoals Node.prototype, Function.prototype, etc.</p>
+
+<p>var current = Object.prototype.valueOf; // Since my property "-prop-value" is cross-cutting and isn't always // on the same prototype chain, I want to modify Object.prototype: Object.prototype.valueOf = function() { if (this.hasOwnProperty("-prop-value") {   return this["-prop-value"];   } else {   // It doesn't look like one of my objects, so let's fall back on   // the default behavior by reproducing the current behavior as best we can.   // The apply behaves like "super" in some other languages.   // Even though valueOf() doesn't take arguments, some other hook may.   return current.apply(this, arguments);   } }</p>
+
+<p>Doordat JavaScript geen sub-classe object bevat, prototype is een handige workaround om een "base class" object aan te maken van bepaalde functie's die zich gedragen als objecten. Bijvoorbeeld:</p>
+
+<pre class="brush: js">var Person = function() {
+ this.canTalk = true;
+};
+
+Person.prototype.greet = function() {
+ if (this.canTalk) {
+ console.log('Hi, I am ' + this.name);
+ }
+};
+
+var Employee = function(name, title) {
+ Person.call(this);
+ this.name = name;
+ this.title = title;
+};
+
+Employee.prototype = Object.create(Person.prototype);
+Employee.prototype.constructor = Employee;
+
+Employee.prototype.greet = function() {
+ if (this.canTalk) {
+ console.log('Hi, I am ' + this.name + ', the ' + this.title);
+ }
+};
+
+var Customer = function(name) {
+ Person.call(this);
+ this.name = name;
+};
+
+Customer.prototype = Object.create(Person.prototype);
+Customer.prototype.constructor = Customer;
+
+var Mime = function(name) {
+ Person.call(this);
+ this.name = name;
+ this.canTalk = false;
+};
+
+Mime.prototype = Object.create(Person.prototype);
+Mime.prototype.constructor = Mime;
+
+var bob = new Employee('Bob', 'Builder');
+var joe = new Customer('Joe');
+var rg = new Employee('Red Green', 'Handyman');
+var mike = new Customer('Mike');
+var mime = new Mime('Mime');
+
+bob.greet();
+// Hi, I am Bob, the Builder
+
+joe.greet();
+// Hi, I am Joe
+
+rg.greet();
+// Hi, I am Red Green, the Handyman
+
+mike.greet();
+// Hi, I am Mike
+
+mime.greet();
+</pre>
+
+<h2 id="Specificaties">Specificaties</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specificatie</th>
+ <th scope="col">Status</th>
+ <th scope="col">Commentaar</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Initiale definitie. Geimplemented in JavaScript 1.0.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.2.3.1', 'Object.prototype')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-object.prototype', 'Object.prototype')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-object.prototype', 'Object.prototype')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_ondersteuning">Browser ondersteuning</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Soort</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Basis Ondersteuning</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Soort</th>
+ <th>Android</th>
+ <th>Chrome for Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>
+ <table class="compat-table">
+ <tbody>
+ <tr>
+ <td>Basis Ondersteuning</td>
+ <td> </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Introductie tot</a><a href="/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript"> Object-Oriented JavaScript</a></li>
+</ul>