我定义的对象是这样的:的Javascript同时创造“不是构造函数”异常物体
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);
但这execption抛出:
Project is not a constructor
什么可能是错误的?我搜索了很多,但仍然无法弄清楚我做错了什么。
出于好奇,该浏览器给予该“项目是不是一个构造器”的消息? – 2012-04-11 13:54:51
作为一个不相关的边节点,一般JavaScript风格指南建议仅在构造函数中使用大写字母来启动变量标识符:“Project”没问题,但“ProjectHeight”中的首要资本暗示它也应该是构造函数。如果你使用“projectHeight”代替,你的代码对其他人更易读。 (事实上,如果其他海报是正确的,并且你已经在其他地方定义了一个Project变量,那么使用前置 - 大写 - 仅供构造器使用的规则将使你不会再犯这个错误。) – apsillers 2012-04-11 13:55:37
@DaggNabbit Opera does(12.15) – PeerBr 2013-06-20 17:39:48