J'écris du JavaScript avec trois classes, une pour les toits, une pour les garages et une pour les maisons. La classe de la maison prend deux arguments à son constructeur, un toit et un garage. Quand je lance ce code je reçois:Problème avec le constructeur d'objet JavaScript où les arguments sont d'autres objets
ne peut pas former l'objet [Pause sur cette erreur] throw new Error (« ne peut pas construire l'objet »); \ n
dans Firebug même si les objets sont clairement du bon type. Une idée de ce que je fais mal? Voici le code:
function Roof(type, material) {
this.getType = function() { return type; }
this.getMaterial = function() { return material; }
}
function Garage(numberOfCars) {
this.getNumberOfCars = function() { return numberOfCars; }
}
function House(roof, garage) {
if (typeof roof !== 'Roof' || typeof garage !== 'Garage') {
throw new Error('can not construct object');
}
this.getRoof = function() { return roof; }
this.getGarage = function() { return garage; }
}
myRoof = new Roof("cross gabled", "wood");
myGarage = new Garage(3);
myHouse = new House(myRoof, myGarage);
alert(myHouse.getRoof().getType());
Vous avez raison! Alors, comment peut-on s'assurer que le bon type d'objet a été passé dans le constructeur? Je ne voudrais pas que quelqu'un passe dans un objet Foo quand j'attendais un toit ... – Ralph