【发布时间】:2012-04-23 19:58:38
【问题描述】:
我正在定义一个这样的对象:
function Project(Attributes, ProjectWidth, ProjectHeight) {
this.ProjectHeight = ProjectHeight;
this.ProjectWidth = ProjectWidth;
this.ProjectScale = this.GetProjectScale();
this.Attributes = Attributes;
this.currentLayout = '';
this.CreateLayoutArray = function()
{....}
}
然后我尝试创建一个这样的实例:
var newProj = new Project(a,b,c);
但是抛出了这个异常:
Project is not a constructor
可能出了什么问题?我用谷歌搜索了很多,但我仍然无法弄清楚我做错了什么。
【问题讨论】:
-
出于好奇,哪个浏览器给出“项目不是构造函数”消息?
-
作为一个不相关的侧节点,一般 JavaScript 风格指南建议仅当它是构造函数时才以大写字母开头变量标识符:“Project”可以,但“ProjectHeight”中的前导大写建议我认为它也应该是一个构造函数。如果您改用“projectHeight”,您的代码将对其他人更具可读性。 (事实上,如果其他发帖者是正确的,并且您已经在其他地方定义了一个 Project 变量,那么使用仅用于构造函数的前导大写规则将避免您再次犯该错误。)
-
@DaggNabbit Opera 确实 (12.15)
标签: javascript object constructor typeerror