Sommari
Il costruttore Object crea un oggetto.
Sintassi
coppiaNomeValore// Letterale { [ coppiaNomeValore1 [,coppiaNomeValore2 [, ...N] ] ] } // Richiamato come una classenew Object( [ value ] )
Parametri
- coppiaNomeValore1, coppiaNomeValore2, ... coppiaNomeValoreN
- Coppie formate da un nome (una stringa) e un valore (di qualsiasi tipo), dove il nome è separato dal valore con i due punti.
-
{ "nome1": "valore1", nome2: "valore2" // Gli apici nel nome sono opzionali };
- value
- Qualsiasi valore.
Descrizione
Il costruttore Object crea un oggetto avente il valore dato. Se il valore è null o undefined, verrà creato un oggetto vuoto; altrimenti un oggetto del tipo corrispondente al valore dato. Se il valore è già un oggetto, verra restituito senza alcuna modifica.
Quando richiamato come normale funzione, il comportamento di Object() è identico a new Object().
Proprietà del costruttore Object
Object.length- Ha valore pari a
1. Object.prototype- Permette di aggiungere altre proprietà ad ogni oggetto di tipo
Object.
Metodi del costruttore Object
Object.assign()- Crea un nuovo oggetto copiando i valori di tutti le proprietà enumerabili da uno o più oggetti.
Object.create()- Crea un nuovo oggetto utilizzando il prototipo e le proprietà specificate.
Object.defineProperty()- Aggiunge una proprietà descritta dall'oggetto specificato.
Object.defineProperties()- Aggiunge più proprietà descritte dall'oggetto specificato.
Object.freeze()- Congela un oggetto: le sue proprietà non possono più essere cancellate o modificate.
Object.getOwnPropertyDescriptor()- Restituisce un oggetto che descriva la proprietà specificata.
Object.getOwnPropertyNames()- Restituisce un array contenente i nomi di tutte le proprietà (enumerabili e non-enumerabili) dell'oggetto specificato.
Object.getPrototypeOf()- Restituisce il prototipo dell'oggetto specificato.
Object.is()- Determina se due valori sono o no uguali (quindi lo stesso oggetto).
Object.isExtensible()- Determina se è permesso estendere un oggetto.
Object.isFrozen()- Determina se un oggetto è stato congelato.
Object.isSealed()- Determina se un oggetto è stato sigillato.
Object.keys()- Restituisce un array contenente i nomi di tutte le proprietà enumerabili dell'oggetto.
Object.observe()- Osserva i cambiamenti di un oggetto in modo asincrono.
Object.preventExtensions()- Impedisce ad un oggetto di essere esteso.
Object.seal()- Impedisce di eliminare le proprietà di un oggetto.
Object.setPrototypeOf()-
Imposta i prototipo (quindi la proprietà intena
[[Prototype]]) di un oggetto.
Instanze di Object e l'oggetto prototipo Object
In JavaScript, tutti gli oggetti sono discendenti di Object; tutti gli oggetti ereditano metodi e proprietà di Object.prototype, anche se queste possono essere sovrascritte. Per esempio, i prototpipi degli altri costruttori sovrascrivono la proprietà constructor e forniscono un loro metodo toString(). I cambiamenti al prototipo di Object venogno estesi a tutti gli oggetti, eccetto quelli che sovrascrivono le proprietà e i metodi cambiati.
Poprietà
Object.prototype.constructor- Specifica la funzione che ha creato l'oggetto a partire dal prototipo.
Object.prototype.__proto__- È un riferimento all'oggetto usato come prototipo quando l'oggetto è stato istanziato.
Object.prototype.__noSuchMethod__- Permette di definire una funzione che venga chiamata quando viene chiamato un metodo non definito.
Object.prototype.__count__Rappresenta il numero di proprietà persenti in un oggetto, ma è stato rimosso.Object.prototype.__parent__Rappresenta il contesto di un oggetto, ma è stato rimosso.
Metodi
Object.prototype.__defineGetter__()- Associa una funzione a una proprietà di un oggetto. Quando si tenta di leggere il valore di tale proprietà, viene eseguita la funzione e restituito il valore che restituisce.
Object.prototype.__defineSetter__()- Associa una funzione a una proprietà di un oggetto. Quando si tenta di cambiare il valore di tale proprietà, viene eseguita la funzione.
Object.prototype.__lookupGetter__()- Restituisce la funzione definita tramite
__defineGetter__(). Object.prototype.__lookupSetter__()- Restituisce la funzione definita tramite
__defineSetter__(). Object.prototype.hasOwnProperty()- Determina se l'oggetto contiene direttamente una proprietà (non ereditata tramite il prototipo).
Object.prototype.isPrototypeOf()- Determina se un oggetto fa parte della catena dei prototipi dell'oggetto sul quale è richiamato questo metodo.
Object.prototype.propertyIsEnumerable()- Determina se l'attributo DontEnum di ECMAScript interno è presente.
Object.prototype.toSource()- Restituisce una stringa contenente il codice sorgente di un oggetto rappresentante l'oggetto sul quale questo metodo viene richiamato; puoi usare questo valore per creare un nuovo oggetto.
Object.prototype.toLocaleString()- Richiama
toString(). Object.prototype.toString()- Restituisce la rappresentazione dell'oggetto sotto forma di stringa.
Object.prototype.unwatch()- Termina di osservare i cambiamenti di una proprietà dell'oggetto.
Object.prototype.valueOf()- Ritorna il valore primitivo dell'oggetto.
Object.prototype.watch()- Inizia a osservare i cambiamenti di una proprietà di un oggetto.
Object.prototype.eval()Esegue una stringa di codice JavaScript nel contesto dell'oggetto, ma è stato rimosso.
Esempi
Usare Object con i valori null e undefined
Questi esempi restituiscono tutti lo stesso oggetto:
var o = {};
var o = new Object();
var o = new Object(undefined);
var o = new Object(null);
Usare Object per creare oggetti Boolean
I seguenti esempi assegnano alla variabile o un oggetto Boolean:
var o = new Object(true); // Equivalente a new Boolean(true)
var o = new Object(Boolean()); // Equivalente a new Boolean(false)
Specifiche
| Specifica | Stato | Commenti |
|---|---|---|
| ECMAScript 1st Edition. Implemented in JavaScript 1.0 | Standard | Definizione iniziale. |
| ECMAScript 5.1 (ECMA-262) The definition of 'Object' in that specification. |
Standard | |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object' in that specification. |
Standard |
Compatibilità con i browser
| Funzionalità | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Supporto di base | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Funzionalità | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Supporto di base | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |