在纯JavaScript中从构造函数推送到数组

在纯JavaScript中从构造函数推送到数组,javascript,arrays,object,constructor,push,Javascript,Arrays,Object,Constructor,Push,我试图从构造函数中构建一个对象数组。我不知道这是否可行或可取。但我正试图建立这一实践,我想知道为什么它不工作 //变量。 const VVD=新部件VVD,33; //对象列表。 var-theList=[]; //党的建设者。 功能部件名称,座椅{ this.name=名称; 这个座位=座位; //theList.pushthis;//这不起作用。 this.pushToTheList=函数{ 这个列表; } this.pushToTheList;//这两者都不是。 } 您在定义列表之前创建

我试图从构造函数中构建一个对象数组。我不知道这是否可行或可取。但我正试图建立这一实践,我想知道为什么它不工作

//变量。 const VVD=新部件VVD,33; //对象列表。 var-theList=[]; //党的建设者。 功能部件名称,座椅{ this.name=名称; 这个座位=座位; //theList.pushthis;//这不起作用。 this.pushToTheList=函数{ 这个列表; } this.pushToTheList;//这两者都不是。 } 您在定义列表之前创建了一个新的参与方

在创建列表数组之前,将调用参与方构造函数

函数声明,如您的第三方构造函数,被提升到其范围的顶部;然而,即使var-theList声明本身被提升,对诸如theList=[]之类的变量的赋值也不会被提升。因此,您的代码的解释如下:

var theList;

// Variables.
const VVD = new Party("VVD", 33);

// List of objects.
theList = [];
在这里,您可以更清楚地看到,当第一次调用构造函数时,为什么列表是未定义的。尝试对语句重新排序,以便在VVD之前创建列表:

//对象列表。 var-theList=[]; //变量。 const VVD=新部件VVD,33; //党的建设者。 功能部件名称,座椅{ this.name=名称; 这个座位=座位; //theList.pushthis;//这是有效的 this.pushToTheList=函数{ 这个列表; } this.pushToTheList;//这个也是。 }
控制台。日志登录方碰巧被吊起;列表=[]不是。嗯……var实际上被挂起了;=[]分配不是…在定义前不应创建参与方Party@stackoverfloweth由于函数声明,这没关系。这是风格的问题。谢谢!也许我仍然在做一些错误的事情,但即使我重新排序代码,它仍然不起作用。正如您在我的代码笔中所看到的:您在构造函数列表中添加了第三个参数,而该参数不应该存在。如果删除它,代码工作正常。
var theList;

// Variables.
const VVD = new Party("VVD", 33);

// List of objects.
theList = [];