Вот, наверное, то, что вам нужно выучить. Если вы создаете конструктор (который я сейчас рекомендую вместо класса из-за закрытых переменных) , он не будет объектом, пока вы не вызовете new
для него.
function Platform(){
const a = ['lame', 1, 'test']; // private array
this.lf = true;
this.testFunc = ()=>{
// no arguments array in an arrow function
console.log(a);
return this; // for property chaining
}
}
function Platforms(){
this.list = [];
this.addPlatform = function(){
this.list.push(...arguments);
return this;
}
}
const pf = new Platforms, np = new Platform;
np.lf = false;
pf.addPlatform(new Platform, new Platform, np);
pf.list[0].lf = false;
console.log(pf.list); np.testFunc();
Вам также может понравиться этот дизайн:
function Platform(){
this.lf = true;
}
function Platforms(){
this.list = [];
this.addPlatform = function(){
this.list.push(new Platform);
return this;
}
}
const pf = new Platforms;
pf.addPlatform().addPlatform().addPlatform();
pf.list[0].lf = false;
console.log(pf.list);