Я пытаюсь реализовать шаблон Prototype в классе es6 без оператора Spread без успеха.
я хочу создать10000000 звезд на холсте, поэтому я подумал, что этот шаблон будет идеальным, поскольку по определению
Шаблон-прототип - это шаблон творческого проектирования в разработке программного обеспечения.Он используется, когда тип создаваемых объектов определяется прототипным экземпляром, который клонируется для создания новых объектов.
Пока это мой рабочий код с оператором распространения:
class Prototype {// Class
constructor(options) {// constructor
this.options = options;//properties
this.context = undefined;
}
//Methods
clone (features){
let clone = new Prototype(this.options);
clone.options = {...clone.options, ...features};
//Object.assign(clone.options, features);
return clone;
}
}
//object literal
var options ={
width : 200,
height: 100
}
let prototype = new Prototype(options);
let clone = prototype.clone({
height: 800,
color: "red"
} );
console.log("prototype:::",prototype,"clone:::",clone);
Но используя Object.assign , я получаю это, что совсем не правильно
class Prototype {// Class
constructor(options) {// constructor
this.options = options;//properties
this.context = undefined;
}
//Methods
clone (features){
let clone = new Prototype(this.options);
//clone.options = {...clone.options, ...features};
Object.assign(clone.options, features);
return clone;
}
}
//object literal
var options ={
width : 200,
height: 100
}
let prototype = new Prototype(options);
let clone = prototype.clone({
height: 800,
color: "red"
} );
console.log("prototype:::",prototype,"clone:::",clone);