Sommari
Il costruttore Object crea un oggetto.
Sintassi
coppiaNomeValore
// Letterale { [ coppiaNomeValore1 [,
coppiaNomeValore
2 [, ...
N] ] ] } // Richiamato come una classe
new 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) |