Javascript 创建对象时调用函数

Javascript 创建对象时调用函数,javascript,Javascript,当我使用构造函数创建新对象时,是否可以调用函数 let people = []; function person(first, last){ this.firstName = first; this.lastName = last; } let john = new person(john, doe); 现在,我希望每个人都被推到一个数组中。每次创建后是否必须写入array.push out?如何: let people = []; function person(first

当我使用构造函数创建新对象时,是否可以调用函数

let people = [];

function person(first, last){
   this.firstName = first;
   this.lastName = last;
}

let john = new person(john, doe);
现在,我希望每个人都被推到一个数组中。每次创建后是否必须写入array.push out?

如何:

let people = [];

function person(first, last){
   this.firstName = first;
   this.lastName = last;
   people.push(this);
}

let john = new person(john, doe);

您可以使用for
People
另一个实例,并将
Person
添加到数组中

这种方法不包括
的副作用,因为推送到
是由
类涵盖的

功能人员(){
this.people=[];
this.createPerson=函数(第一个,最后一个){
这个.人.推(新人(第一,最后));
};
this.getPeople=函数(){
把这个还给我;
};
}
职能人员(第一,最后){
this.firstName=first;
this.lastName=last;
}
var people=新人;
people.createPerson('john','doe');
console.log(人);
console.log(people.getPeople());

console.log(people.getPeople()[0]个人实例)
在创建
人员
数组之前,将调用
人员
构造函数

let people=[];
职能人员(第一,最后){
this.firstName=first;
this.lastName=last;
this.pushToPerson=函数(){
人,推(这个),;
}
这个。pushToPerson();
}
让约翰=新人(“约翰”、“多伊”);
console.log(人)
let people=[];
函数添加(firstName,lastName){
设obj={};
obj.firstName=firstName;
obj.lastName=lastName;
人。推(obj);
}
加上(‘约翰’、‘多伊’);
加上('Sarah','Smith');

console.log(人)在数组和对象/类本身之间创建非常直接的关系。如果没有这样的数组,或者该名称已经被一个不同类型的变量使用,比如说,该怎么办?我宁愿使用一个函数来创建一个新人,然后将这个新人添加到一个数组中,这样这两个不同的功能就不会这么纠结了。我想op不是在问怎么做(很琐碎),而是问这是一个好的做法还是错误not@CBroe如果是这样的话,它应该包括在问题中。@Gab是的,我想它很琐碎,但问题是是否有必要在每次对象创建后调用函数,答案是否定的。这是你的观点,从我的观点来看,这是一个非常糟糕的设计,正如CBroe所说:)从纯面向对象的角度来看,构造函数应该只创建一个新实例,而不在其作用域之外进行交互,但它是javascript……这对我来说似乎很奇怪。它拥有最多的投票权,所以我相信这是正确的,但是使用人和人不是一个问题吗?另外,为什么人在构造函数中是一个数组,然后在下面是一个新的人?
people
people
的一个实例。您可以添加另一个方法,如
getPeople
,然后获得包含
Person
所有实例的所需数组。