6.1 Creazione di oggetti
Oggetti sono uno dei principali tipi di dati in JavaScript e vengono ampiamente utilizzati per memorizzare e gestire i dati. Un oggetto è una collezione di proprietà, dove ogni proprietà è costituita da una chiave (nome) e un valore. In questa lezione esamineremo la creazione di oggetti, così come l'accesso alle loro proprietà e metodi.
1. Oggetto letterale
Il modo più comune per creare un oggetto in JavaScript è usare un oggetto letterale.
In questo esempio abbiamo creato un oggetto person
con quattro proprietà: name
, age
, isStudent
e greet
.
let person = {
name: 'John',
age: 30,
isStudent: false,
greet: function() {
return 'Hello!';
}
};
2. Costruttore Object
Gli oggetti possono anche essere creati usando il costruttore Object()
.
Questo metodo è equivalente alla creazione di un oggetto usando un letterale di oggetto, ma è più verboso:
let person = new Object();
person.name = 'John';
person.age = 30;
person.isStudent = false;
person.greet = function() {
return 'Hello!';
};
3. Funzione costruttore
La funzione costruttore consente di creare più istanze di oggetti con le stesse proprietà e metodi.
In questo esempio, la funzione costruttore Person()
viene utilizzata per creare gli oggetti john
e jane
con le stesse proprietà e metodi:
function Person(name, age, isStudent) {
this.name = name;
this.age = age;
this.isStudent = isStudent;
this.greet = function() {
return 'Hello!';
};
}
let john = new Person('John', 30, false);
let jane = new Person('Jane', 25, true);
4. Metodo Object.create()
Il metodo Object.create()
crea un nuovo oggetto con il prototipo e le proprietà specificate.
In questo esempio, l'oggetto john
è creato sulla base del prototipo personPrototype
:
let personPrototype = {
greet: function() {
return 'Hello!';
}
};
let john = Object.create(personPrototype);
john.name = 'John';
john.age = 30;
john.isStudent = false;
6.2 Accesso alle proprietà e ai metodi
1. Accesso tramite punto
Il modo più comune per accedere alle proprietà e ai metodi di un oggetto è attraverso il punto:
let person = {
name: 'John',
age: 30,
greet: function() {
return 'Hello!';
}
};
console.log(person.name); // Visualizza: John
console.log(person.age); // Visualizza: 30
console.log(person.greet()); // Visualizza: Hello!
2. Accesso tramite parentesi quadre
Le proprietà di un oggetto possono essere anche chiamate usando le parentesi quadre. Questo metodo è utile se il nome della proprietà è memorizzato in una variabile o contiene spazi o caratteri speciali:
let person = {
'first name': 'John',
age: 30,
greet: function() {
return 'Hello!';
}
};
console.log(person['first name']); // Visualizza: John
console.log(person['age']); // Visualizza: 30
let propertyName = 'greet';
console.log(person[propertyName]()); // Visualizza: Hello!
3. Modifica e aggiunta di proprietà
Le proprietà dell'oggetto possono essere modificate o aggiunte in qualsiasi momento:
let person = {
name: 'John',
age: 30
};
// Modifica di una proprietà esistente
person.age = 31;
console.log(person.age); // Visualizza: 31
// Aggiunta di una nuova proprietà
person.isStudent = false;
console.log(person.isStudent); // Visualizza: false
4. Eliminazione di proprietà
Le proprietà di un oggetto possono essere cancellate usando l'operatore delete
:
let person = {
name: 'John',
age: 30,
isStudent: false
};
delete person.isStudent;
console.log(person.isStudent); // Visualizza: undefined
6.3 Iterazione sulle proprietà dell'oggetto
1. Ciclo for...in
Il ciclo for...in
permette di scorrere tutte le proprietà enumerabili di un oggetto:
let person = {
name: 'John',
age: 30,
isStudent: false
};
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
// Visualizza:
// name: John
// age: 30
// isStudent: false
2. Metodo Object.keys()
Il metodo Object.keys()
restituisce un array di tutte le proprietà enumerabili di un oggetto:
let person = {
name: 'John',
age: 30,
isStudent: false
};
let keys = Object.keys(person);
console.log(keys); // Visualizza: ['name', 'age', 'isStudent']
3. Metodo Object.values()
Il metodo Object.values()
restituisce un array di valori di tutte le proprietà enumerabili di un oggetto:
let person = {
name: 'John',
age: 30,
isStudent: false
};
let values = Object.values(person);
console.log(values); // Visualizza: ['John', 30, false]
4. Metodo Object.entries()
Il metodo Object.entries()
restituisce un array di coppie [chiave, valore] per tutte le proprietà enumerabili di un oggetto:
let person = {
name: 'John',
age: 30,
isStudent: false
};
let entries = Object.entries(person);
console.log(entries); // Visualizza: [['name', 'John'], ['age', 30], ['isStudent', false]]
6.4 Verifica delle proprietà
1. Operatore in
L'operatore in
permette di verificare la presenza di una proprietà in un oggetto:
let person = {
name: 'John',
age: 30
};
console.log('name' in person); // Visualizza: true
console.log('isStudent' in person); // Visualizza: false
2. Metodo hasOwnProperty()
Il metodo hasOwnProperty()
verifica se un oggetto ha una specifica proprietà come propria (non ereditata):
let person = {
name: 'John',
age: 30
};
console.log(person.hasOwnProperty('name')); // Visualizza: true
console.log(person.hasOwnProperty('isStudent')); // Visualizza: false
GO TO FULL VERSION