Mentre JavaScript è un linguaggio orientato agli oggetti, non utilizza le classi. Non si crea una "classe" in JavaScript. Crei un "prototipo". JavaScript è considerato un Prototype-based language.
Il primo esempio è noto come "object-literal notation" per la creazione di un oggetto (un sottoinsieme del quale è popolarmente noto come JSON). Un'analogia di questo nei linguaggi basati su classi è una classe "statica", nel senso che non è necessario creare una nuova istanza di un oggetto in questo caso; "Esiste", una volta definito. Non lo avresti istanziato, avresti accesso ai membri di apple
immediatamente poiché lo apple
è già un oggetto. È anche simile alla creazione di una classe anonima in Java. Usereste in questo modo:
alert(apple.getInfo());
Con il secondo esempio, si sta creando un prototipo (non una classe), che può essere utilizzata per creare un'istanza di oggetti di tipo Apple
. Si potrebbe utilizzare in questo modo:
var redDelicious = new Apple("Red Delicious");
alert(redDelicious.getInfo());
JavaScript consente di modificare e aggiungere con il prototipo di un oggetto, in modo da dopo aver dichiarato la vostra Apple
prototipo, si potrebbe ancora continuare ad aggiungere o cambiare le cose su di esso in questo modo:
Apple.prototype.size = "7cm";
Quando si esegue questa operazione, tutti gli oggetti derivati dal prototipo Apple
otterranno un campo size
. Questa è la base su come lo PrototypeJS framework lavora per modificare gli oggetti JavaScript nativi per aggiungere la funzionalità di correzione &.
Tenere presente che è considerata una cattiva prassi modificare il prototipo di oggetti JavaScript nativi, quindi è consigliabile evitare di farlo quando possibile.
fonte
2010-01-31 18:58:33
Si sta creando solo un oggetto e non una classe. – Gumbo