7 modi per creare oggetti in JavaScript:
1. Oggetto del costruttore
Il modo più semplice per creare un oggetto è quello di utilizzare la funzione di costruzione dell'oggetto: vista plainprint?
var person = new Object();
person.name = "Diego";
person.getName = function(){
return this.name;
};
2. letterale notazione
vista plainprint?
var person = {
person.name : "Diego",
person.getName : function(){
return this.name;
}
}
3. funzione fabbrica
La funzione di fabbrica permette di incapsulare e riutilizzare la logica per creare oggetti simili. Sfrutta qualsiasi costrutto precedente per questo. O: visualizza plainprint?
var newPerson=function(name){
var result = new Object();
result.name = name;
result.getName = function(){
return this.name;
};
return result;
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
Oppure:
view plainprint?
var newPerson=function(name){
return {
person.name : name,
person.getName : function(){
return this.name;
};
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
4. funzione di costruzione
in JavaScript è possibile chiamare qualsiasi funzione con il nuovo operatore di fronte ad essa. Data una funzione F, per la nuova F(): viene creato un nuovo oggetto vuoto X. X è impostato come contesto per il significato F in tutto F che punta a X. X viene restituito come risultato della vista grafica di F ?
function Person(name){
this.name = name;
this.getName = function(){
return this.name;
};
};
var personOne = new Person("Diego");
console.log(personOne.getName()); // prints Diego
console.log(personOne instanceOf Person); // prints true
console.log(personOne.constructor === Person); // prints true
console.log(personOne instanceOf Object); // prints true
5. Prototipo
funzioni sono molto speciale in Javascript. Sono oggetti, possono creare altri oggetti e ottengono automaticamente un campo chiamato prototipo. Un prototipo è un oggetto semplice con un singolo campo, chiamato costruttore, che punta alla funzione stessa. Ciò che lo rende speciale è che ogni oggetto creato attraverso una funzione eredita il prototipo della funzione. vedi documento?
function Person(){};
Person.prototype.name = "Diego";
var personOne = new Person();
var personTwo = new Person();
console.log(personOne.constructor == Person); // prints true
console.log(personOne.name); // prints Diego
console.log(personTwo.constructor == Person); // prints true
console.log(personTwo.name); // prints Diego
6. Funzione/combinazione Prototipo
La combinazione funzione/prototipo, come si potrebbe immaginare, si avvale di entrambi gli approcci :) vista plainprint?
function Person(name){
this.name = name;
};
Person.prototype.getName = function(){
return this.name;
};
var personOne = new Person("Diego");
var personTwo = new Person("Filippo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Filippo
console.log(personOne.getName === personTwo.getName) //prints true
7. Singleton
A volte, si consiglia di fare in modo che solo una singola istanza di una certa classe esiste. Per ottenere un Singleton in Javascript è semplice come definire e richiamare il costruttore allo stesso tempo: visualizza plainprint?
var singleton = new function(){
this.name = "ApplicationName";
};
In Approccio 2 la parola chiave 'new' non dovrebbe essere lì. – Halcyon
@FritsvanCampen - Sì, dovrebbe. Questo crea un nuovo oggetto dalla funzione di costruzione (anonima). –
se la parola chiave 'new' non è lì, sarebbe una classe. – macool