PROPRIETA’ DEGLI OGGETTI

JSLe proprietà sono la parte più importante di qualsiasi oggetto JavaScript. Un oggetto è una raccolta di proprietà non ordinate. Le proprietà di solito possono essere modificate, aggiunte ed eliminate, ma alcune sono di sola lettura. La sintassi per accedere alla proprietà di un oggetto è:

objectName.property      // person.age

oppure:

objectName[“property“]   // person[“age”]

oppure:

objectName[expression  // x = “age”; person[x]

L’espressione deve restituire un nome di proprietà.

const person = {
  firstName: “John”,
  lastName: “Doe”,
  age: 50,
  eyeColor: “blue”
};

person.firstname ” is ” + person.age ” years old.”;

person[“firstname”]” is ” + person[“age”]” years old.”;

FOR IN LOOP

L’istruzione JavaScript for…in scorre le proprietà di un oggetto.

for (let variable in object) {
  // code to be executed
}

Il blocco di codice all’interno del ciclo for…in verrà eseguito una volta per ogni proprietà:

const person = {
  fname: “John”,
  lname: “Doe”,
  age: 25
};

for (let x in person) {
  txt += person[x];
}

//return John Doe 25

AGGIUNGERE PROPRIETA’

Puoi aggiungere nuove proprietà a un oggetto esistente semplicemente assegnandogli un valore. Supponiamo che l’oggetto person esista già – puoi quindi assegnargli nuove proprietà:

person.nationality “English”;

RIMUOVERE UNA PROPRIETA’

La parola chiave delete elimina una proprietà da un oggetto:

const person = {
  firstName: “John”,
  lastName: “Doe”,
  age: 50,
  eyeColor: “blue”
};

delete person.age;

oppure

delete person[“age”];

La parola chiave delete elimina sia il valore della proprietà che la proprietà stessa. Dopo l’eliminazione, la proprietà non può essere utilizzata prima di essere nuovamente aggiunta. L’operatore di eliminazione è progettato per essere utilizzato sulle proprietà dell’oggetto. Non ha effetto su variabili o funzioni. delete non deve essere utilizzato sulle proprietà degli oggetti JavaScript predefiniti. Può mandare in crash la tua applicazione.

OGGETTI NIDIFICATI

const myObj = {
  name:“John”,
  age:30,
  cars: {
    car1:“Ford”,
    car2:“BMW”,
    car3:“Fiat”
  }
}

Puoi accedere agli oggetti nidificati usando la notazione punto o la notazione parentesi:

myObj.cars.car2;

oppure:

myObj.cars[“car2”];

oppure:

myObj[“cars”][“car2”];

Oppure:

let p1 = “cars”;
let p2 = “car2”;
myObj[p1][p2];

OGGETTI E ARRAY NIDIFICATI

I valori negli oggetti possono essere array e i valori negli array possono essere oggetti:

const myObj = {
  name: “John”,
  age: 30,
  cars: [
    {name:”Ford”, models:[“Fiesta”, “Focus”, “Mustang”]},
    {name:“BMW”, models:[“320”, “X3”, “X5”]},
    {name:“Fiat”, models:[“500”, “Panda”]}
  ]
}

for (let i in myObj.cars) {
  x += “<h1>” + myObj.cars[i].name + “</h1>”;
  for (let j in myObj.cars[i].models) {
    x += myObj.cars[i].models[j] + “<br>”;
  }
}

Tutte le proprietà hanno un nome. Inoltre, hanno anche un valore. Il valore è uno degli attributi della proprietà. Altri attributi sono: enumerable, configurable, and writable. Questi attributi definiscono come è possibile accedere alla proprietà (è leggibile? è scrivibile?) In JavaScript, tutti gli attributi possono essere letti, ma solo l’attributo value può essere modificato (e solo se la proprietà è scrivibile). (ECMAScript 5 ha metodi sia per il getting che per il setting di tutti gli attributi delle proprietà)

Copy to Clipboard

LINK AGLI OGGETTI JAVASCRIPT

OGGETTI JAVASCRIPT

LINK AL CODICE SU GITHUB

GITHUB