I have an object with two methods, this is a kind of base object and each methods can be overridden afterward.
const base = {
getStepsTitles: () => {
return [
"title 1",
"title 2",
"title 3"
];
},
setStepsTitles: (setters) => {
const titles = this.getStepsTitles(); // this method here is overriden
for (let [index, setter] of setters.entries())
setter(titles[index]);
}
};
For instance, if I create a function like this
function NewMessages()
{
this.getStepsTitles = () => {
return [
"new title 1",
"new title 2",
"new title 3"
];
}
}
When I use the spread operator like this, the getStepsTitles called from the "base" object throws an error as if it was not existing. But my object clearly has it { getStepsTitles: ƒ, setStepsTitles: ƒ }
const newMsg = new NewMessages();
var test = {
...base,
...newMsg
}
test.setStepsTitles([
(t)=>{console.log(t)},
(t)=>{console.log(t)},
(t)=>{console.log(t)}
]);
Am I misunderstanding something?
const base = {
getStepsTitles: () => {
return [
"title 1",
"title 2",
"title 3"
];
},
setStepsTitles: (setters) => {
const titles = this.getStepsTitles(); // this method here is overriden
for (let [index, setter] of setters.entries())
setter(titles[index]);
}
};
function NewMessages() {
this.getStepsTitles = () => {
return [
"new title 1",
"new title 2",
"new title 3"
];
}
}
const newMsg = new NewMessages();
var test = {
...base,
...newMsg
}
test.setStepsTitles([
(t) => {
console.log(t)
},
(t) => {
console.log(t)
},
(t) => {
console.log(t)
}
]);