Usando la funzione di costruzione Object () integrata, possiamo creare al volo oggetti generici vuoti. Infatti, se ricordi all'inizio del Capitolo 1, questo è esattamente ciò che abbiamo fatto creando l'oggetto di cody. Consente di ricreare l'oggetto di cody.
Esempio: sample69.html
Qui, tutto ciò che stiamo facendo è usare il Oggetto()
funzione di costruzione per creare un oggetto generico chiamato cody. Puoi pensare al Oggetto()
costruttore come cookie cutter per la creazione di oggetti vuoti che non hanno proprietà o metodi predefiniti (eccetto, ovviamente, quelli ereditati dalla catena del prototipo).
Se non è ovvio, il Oggetto()
costruttore è un oggetto stesso. Cioè, la funzione di costruzione è basata su un oggetto creato dal Funzione
costruttore. Questo può essere fonte di confusione. Ricorda solo che come il schieramento
costruttore, il Oggetto
il costruttore sputa semplicemente gli oggetti vuoti. E sì, puoi creare tutti gli oggetti vuoti che ti piacciono. Tuttavia, la creazione di un oggetto vuoto come la cody è molto diversa dalla creazione della propria funzione di costruzione con proprietà predefinite. Assicurati di capire che la cody è solo un oggetto vuoto basato sul Oggetto()
costruttore. Per sfruttare realmente la potenza di JavaScript, dovrai imparare non solo come creare contenitori di oggetti vuoti Oggetto()
, ma anche come costruire la tua "classe" di oggetti (Persona()
) come il Oggetto()
funzione di costruzione stessa.
Oggetto()
parametriIl Oggetto()
la funzione di costruzione richiede un parametro opzionale. Questo parametro è il valore che vorresti creare. Se non fornisci alcun parametro, allora a nullo
o non definito
il valore sarà assunto.
Esempio: sample70.html
Se un valore oltre nullo
o non definito
è passato al Oggetto
costruttore, il valore passato verrà creato come oggetto. Quindi, in teoria, possiamo usare il Oggetto()
costruttore per creare uno qualsiasi degli altri oggetti nativi che hanno un costruttore. Nel prossimo esempio, faccio proprio questo.
Esempio: sample71.html
Oggetto()
Proprietà e metodiIl Oggetto()
oggetto ha le seguenti proprietà (escluse proprietà e metodi ereditati):
Proprietà (Object.prototype;
):
prototipo
Oggetto()
Proprietà istanza e metodiOggetto()
le istanze di oggetti hanno le seguenti proprietà e metodi (non include proprietà e metodi ereditati):
Proprietà istanza (var myObject = ;
myObject.constructor;
):
costruttore
Metodi di istanza (var myObject = ;
myObject.toString ();
):
hasOwnProperty ()
isPrototypeOf ()
propertyIsEnumerable ()
toLocaleString ()
accordare()
valore di()
La catena del prototipo termina con Object.prototype
, e quindi tutte le proprietà e i metodi di Oggetto()
sono ereditati da tutti gli oggetti JavaScript.
Oggetto()
Oggetti che usano "oggetti letterali"La creazione di un "oggetto letterale" implica la creazione di istanze di un oggetto con o senza proprietà utilizzando le parentesi graffe (var cody = ;
). Ricordate all'inizio del Capitolo 1 quando abbiamo creato l'oggetto di codifica one-off e poi abbiamo dato le proprietà dell'oggetto di cody usando la notazione a punti? Facciamolo di nuovo.
Esempio: sample72.html
Si noti nel codice che crea il cody
oggetto e le sue proprietà hanno preso cinque dichiarazioni. Usando la notazione letterale dell'oggetto possiamo esprimere lo stesso cody
oggetto in una dichiarazione.
Esempio: sample73.html
L'uso della notazione letterale ci dà la possibilità di creare oggetti, incluse le proprietà definite, con meno codice e incapsulare visivamente i relativi dati. Notare l'uso del :
e ,
operatori in una singola dichiarazione. Questa è in realtà la sintassi preferita per la creazione di oggetti in JavaScript a causa della sua chiarezza e leggibilità.
Dovresti essere consapevole che i nomi delle proprietà possono anche essere specificati come stringhe:
Esempio: sample74.html
Non è necessario specificare le proprietà come stringhe a meno che il nome della proprietà:
classe
).Attento! L'ultima proprietà di un oggetto non dovrebbe avere una virgola finale. Ciò causerà un errore in alcuni ambienti JavaScript.
Object.prototype
Il Oggetto()
la funzione di costruzione in JavaScript è speciale, come sua prototipo
la proprietà è l'ultima fermata nella catena del prototipo.
Nel seguente esempio, aggiungo il Object.prototype
con un foo
proprietà e quindi creare una stringa e tentare di accedere a foo
proprietà come se fosse una proprietà dell'istanza della stringa. Dal momento che il mystring
l'istanza non ha a foo
proprietà, la catena del prototipo entra in gioco e il valore viene cercato String.prototype
. Non è lì, quindi il prossimo posto dove guardare è Object.prototype
, che è la posizione finale JavaScript cercherà un valore dell'oggetto. Il foo
il valore è stato trovato perché l'ho aggiunto, quindi restituisce il valore di foo
.
Esempio: sample75.html
Attento! Qualche cosa aggiunto a Object.prototype
apparirà in a per dentro
loop e la catena del prototipo. Per questo motivo è stato detto che cambiando Object.prototype
è vietato.