Je définis un objet comme ceci :
function Project(Attributes, ProjectWidth, ProjectHeight) {
this.ProjectHeight = ProjectHeight;
this.ProjectWidth = ProjectWidth;
this.ProjectScale = this.GetProjectScale();
this.Attributes = Attributes;
this.currentLayout = '';
this.CreateLayoutArray = function()
{....}
}
J'essaie ensuite de créer une instance comme ceci :
var newProj = new Project(a,b,c);
mais cette exception est levée :
Project is not a constructor
Qu'est-ce qui pourrait ne pas aller ? J'ai beaucoup cherché sur Internet, mais je n'arrive toujours pas à comprendre ce que je fais de mal.
1 votes
Par curiosité, quel navigateur donne ce message "Project is not a constructor" ?
18 votes
En tant que nœud latéral sans rapport, les directives générales de style JavaScript recommandent de commencer un identifiant de variable par une lettre majuscule uniquement s'il s'agit d'un constructeur : "Project" est correct, mais la majuscule de début dans "ProjectHeight" me suggère qu'il devrait également être un constructeur. Si vous utilisez "projectHeight" à la place, votre code sera plus lisible pour les autres. (En fait, si les autres posters ont raison, et que vous avez défini une variable Project ailleurs, l'utilisation de la règle de la majuscule initiale pour les constructeurs uniquement vous évitera de refaire cette erreur).
0 votes
@DaggNabbit Opera le fait (12.15)