Можно ли отменить Object.assign?
Я хотел бы использоватьObject.assign
временно «обновить» объект новыми методами, а затем удалить эти методы, когда я закончу их использовать. Пример прояснит:
Скажем, у нас есть миксин, который позволяет нам вычислить среднее значение массива:
var ArrayUtilMixin = {
avg() {
let sum = this.reduce( (prev, v) => {return prev + v}, 0);
return sum / this.length;
}
};
Наш клиентский код использует это так:
let myArr = [0,3,2,4,88];
// now I am in a context where I want to average this array,
// so I dynamically add the ability with Object.assign
Object.assign(myArr, ArrayUtilMixin);
let avg = myArr.avg();
// do some stuff here with the average
// now we're done, we want declutter the myArr object
// and remove the no longer needed avg() method
Object.unassign(myArr, ArrayUtilMixin); // <-- CAN WE DO THIS SOMEHOW?
Есть ли способ сделать это? Если нет, то использую ли я не ту языковую функцию, которая мне действительно нужна - эту способность динамически добавлять и удалять методы объекта во время выполнения в зависимости от контекста.