* chore(i18n,curriculum): update translations * chore: Italian to italian Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>
2.7 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d7b8b367417b2b2512b53 | Usare la sintassi class per definire una funzione costruttore | 1 | 301212 | use-class-syntax-to-define-a-constructor-function |
--description--
ES6 fornisce una nuova sintassi per creare oggetti, utilizzando la parola chiave class (classe).
Va notato che la sintassi class è appunto solo una sintassi, e non la vera e propria implementazione basata su classi di un paradigma orientato agli oggetti, a differenza di quanto accade in linguaggi come Java, Python, Ruby, ecc.
In ES5, di solito definiamo una funzione constructor e usiamo la parola chiave new per istanziare un oggetto.
var SpaceShuttle = function(targetPlanet){
this.targetPlanet = targetPlanet;
}
var zeus = new SpaceShuttle('Jupiter');
La sintassi class sostituisce semplicemente la creazione della funzione constructor:
class SpaceShuttle {
constructor(targetPlanet) {
this.targetPlanet = targetPlanet;
}
}
const zeus = new SpaceShuttle('Jupiter');
Va notato che la parola chiave class dichiara una nuova funzione, alla quale viene aggiunto un costruttore. Questo costruttore viene invocato quando new viene chiamata per creare un nuovo oggetto.
Nota: Per i nomi di classi ES6 dovrebbe essere usato per convenzione lo stile di scrittura UpperCamelCase, come fatto sopra in SpaceShuttle.
Il metodo costruttore constructor è un metodo speciale per creare e inizializzare un oggetto creato con class. Potrai approfondire la cosa nella sezione Programmazione Orientata agli Oggetti della certificazione Algoritmi e Strutture Dati in JavaScript.
--instructions--
Usa la parola chiave class e scrivi una funzione constructor per creare la classe Vegetable.
La classe Vegetable consente di creare un oggetto con una proprietà name che viene passata al constructor.
--hints--
Vegetable dovrebbe essere una class con un metodo constructor definito.
assert(
typeof Vegetable === 'function' && typeof Vegetable.constructor === 'function'
);
Dovrebbe essere usata la parola chiave class.
assert(code.match(/class/g));
Vegetable dovrebbe poter essere istanziata.
assert(() => {
const a = new Vegetable('apple');
return typeof a === 'object';
});
carrot.name dovrebbe restituire carrot.
assert(carrot.name == 'carrot');
--seed--
--seed-contents--
// Only change code below this line
// Only change code above this line
const carrot = new Vegetable('carrot');
console.log(carrot.name); // Should display 'carrot'
--solutions--
class Vegetable {
constructor(name) {
this.name = name;
}
}
const carrot = new Vegetable('carrot');