Un post veloce per quanto riguarda i concetti più importanti e frequenti dello JavaScript avanzato o che possiamo dire Object Oriented Programming JavaScript.

Gli oggetti sono dei concetti chiave di JavaScript. Iniziamo rapidamente a scrivere un po’ di codice e concetti per capire di cosa si tratta. Gli oggetti si creano con metodi, proprietà e attributi, che impacchettiamo all’interno di tale oggetto e viene chiamato incapsulamento; metodi e attributi sono astratte da altri oggetti e per questo motivo viene detta astrazione.

JavaScript è stato progettato su un semplice paradigma object-based. Un oggetto è un insieme di proprietà, e una proprietà è un’associazione tra un nome (o chiave) e un valore. Il valore di una proprietà può essere una funzione, nel qual caso la struttura è nota come metodo. Oltre agli oggetti che sono predefiniti nel browser, è possibile definire i propri oggetti. Questo capitolo descrive come utilizzare gli oggetti, proprietà, funzioni e metodi, e come creare i propri oggetti.

Fonte

JavaScript is designed on a simple object-based paradigm. An object is a collection of properties, and a property is an association between a name (or key) and a value. A property’s value can be a function, in which case the property is known as a method. In addition to objects that are predefined in the browser, you can define your own objects. This chapter describes how to use objects, properties, functions, and methods, and how to create your own objects.

[icon name=”user-md” title=”Autore”] mozilla mdn

Ci sono due principi di OOP in js

  1. Modello di creazione di oggetti (incapsulamento)
  2. Modello di riutilizzo degli oggetti (eredità)

Ci sono molti modi per creare un oggetto:

Oggetto letterale Ubiquitous
[code lang=”javascript”] var myOoj = {
name: "Pippo",
city: "Arezzo",
amori: "tanti"
}
[/code]
Modello Prototype
[code lang=”javascript”] function myFun() {};
myFun.prototype.name = "Pippo";
myFun.prototype.city = "Arezzo";
var myFun1 = new myFun();
console.log(myFun1.name); //Pippo
[/code]
Modello Constructor
[code lang=”javascript”] function myFun (name, city, amori){
this.name = name;
this.city = city;
this.amori= amori;
}
var myFun1 = new myFun ("Nikki", "New Delhi", "so much things");
console.log(myFun1.name); //Pippo
[/code]

Anche se ci sono tanti modi per creare gli oggetti, il modo migliore per farlo potrebbe essere una combinazione dei modelii costruttore/prototipo.

Incapsulamento
[code lang=”javascript”] var prop1 = "uno"; //privata
this.prop2= "due" //pubblica
var tc = new test();
var tp1 =tc.prop1; //undefined: perché prop1 è privata;
//senza l’utilizzo della parola chiave ‘this’, funzioni e variabili sono privati
[/code]

Concettualmente si può dire che, è possibile definire e creare i propri oggetti.

Ci sono modi diversi per creare nuovi oggetti:

  • Definire e creare un singolo oggetto, utilizzando un oggetto letterale.
  • Definire e creare un singolo oggetto, con la parola chiave ‘new’.
  • Definire un oggetto costruttore e quindi creare oggetti del tipo del costruttore.
  • In ECMA5 * Il metodo Object.create() crea un nuovo oggetto con le specifiche dell’oggetto prototipo e le sue proprietà.
Restate sintonizzati per alcuni concetti avanzati di JavaScript
[code lang=”javascript”] Object.create();
[/code]
Crediti
[icon name=”user-md” title=”Autore”] Nikhil Kumar
[icon name=”envira” title=”Sorgente”] “Objects, Encapsulation & Abstraction