* chore(i18n,curriculum): update translations * chore: Italian to italian Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>
2.1 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7daf367417b2b2512b7e | Comprendere la proprietà Costruttore | 1 | 301327 | understand-the-constructor-property |
--description--
C'è una proprietà speciale constructor
situata nelle istanze oggetto duck
e beagle
che sono state create nelle sfide precedenti:
let duck = new Bird();
let beagle = new Dog();
console.log(duck.constructor === Bird);
console.log(beagle.constructor === Dog);
Entrambe queste chiamate a console.log
visualizzeranno true
nella console.
Nota che la proprietà constructor
è un riferimento alla funzione costruttore che ha creato l'istanza. Il vantaggio della proprietà constructor
è che è possibile controllare questa proprietà per scoprire di che tipo di oggetto si tratta. Ecco un esempio di come usarlo:
function joinBirdFraternity(candidate) {
if (candidate.constructor === Bird) {
return true;
} else {
return false;
}
}
Nota: Poiché la proprietà constructor
può essere sovrascritta (come vedremo nelle prossime due sfide) normalmente è meglio utilizzare il metodo instanceof
per controllare il tipo di un oggetto.
--instructions--
Scrivi una funzione joinDogFraternity
che richieda un parametro candidate
e, utilizzando la proprietà constructor
, restituisca true
se il candidato è un Dog
, altrimenti restituisca false
.
--hints--
joinDogFraternity
dovrebbe essere definita come una funzione.
assert(typeof joinDogFraternity === 'function');
joinDogFraternity
dovrebbe restituire true
se candidate
è un'istanza di Dog
.
assert(joinDogFraternity(new Dog('')) === true);
joinDogFraternity
dovrebbe utilizzare la proprietà constructor
.
assert(/\.constructor/.test(code) && !/instanceof/.test(code));
--seed--
--seed-contents--
function Dog(name) {
this.name = name;
}
// Only change code below this line
function joinDogFraternity(candidate) {
}
--solutions--
function Dog(name) {
this.name = name;
}
function joinDogFraternity(candidate) {
return candidate.constructor === Dog;
}