Date of new Date

Status
Niet open voor verdere reacties.

famlam

Gebruiker
Lid geworden
15 okt 2008
Berichten
416
Ik vroeg me af, wanneer moet je new Date() gebruiken, en wanneer Date?

Want bijvoorbeeld de volgende code werkt
[JS]var nu = Date.now();
var now = new Date().getTime();[/JS]

Maar als ik ze omdraai:
[JS]var nu = new Date().now(); // TypeError: Object Sun Jan 22 2012 12:57:12 GMT+0100 (West-Europa (standaardtijd)) has no method 'now'
var now = Date.getTime(); // TypeError: Object function Date() { [native code] } has no method 'getTime'[/JS]

Weet iemand wanneer precies je de ene moet gebruiken en wanneer de andere?
 
Je hebt hier te maken met het verschil tussen klassen en objecten. Over het concept van een object-georiënteerde taal is veel te vinden. Lees bijvoorbeeld eens:
- https://developer.mozilla.org/en/Introduction_to_Object-Oriented_JavaScript
- http://www.roseindia.net/javascript/classes-objects.shtml

Date is een klasse. Door de constructor aan te roepen (dat doe je met de new-operator, dus "new Date()"), wordt een Date-instantie voor je gemaakt (een object van type Date).

Zo'n instantie heeft bepaalde methods (functies) waarmee je bijvoorbeeld eigenschappen (in het voorbeeld: tijd of datum) kan opvragen. Een voorbeeld is de functie getTime.

De klasse zelf kan ook methods hebben. In je voorbeeld gebruik je Date.now. Deze functie geeft een object van type Date (een instantie) terug.

Dus in het kort de reden dat ze niet onderling uitwisselbaar zijn: klassen kunnen methods hebben. Instanties van die klasse hebben gewoonlijk niet dezelfde methods. Date is een klasse, new Date() en Date.now() zijn instanties van Date.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan