gpt4 book ai didi

Javascript "Not a Constructor"创建对象时出现异常

转载 作者:行者123 更新时间:2023-11-28 04:05:18 25 4
gpt4 key购买 nike

我正在定义一个这样的对象:

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

可能出了什么问题?我用谷歌搜索了很多,但我仍然不明白我做错了什么。

最佳答案

问题中发布的代码无法生成该错误,因为 Project 不是用户定义的函数/有效的构造函数。

function x(a,b,c){}
new x(1,2,3); // produces no errors

你可能做过这样的事情:

function Project(a,b,c) {}
Project = {}; // or possibly Project = new Project
new Project(1,2,3); // -> TypeError: Project is not a constructor

使用 var 的变量声明为 hoisted因此总是在其余代码之前进行评估。因此,这也可能会导致问题:

function Project(){}
function localTest() {
new Project(1,2,3); // `Project` points to the local variable,
// not the global constructor!

//...some noise, causing you to forget that the `Project` constructor was used
var Project = 1; // Evaluated first
}

关于Javascript "Not a Constructor"创建对象时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com