Я копирую все пары ключ-значение из oldObject
в newObject
, которые уже содержат записи и будут продолжать накапливать записи.
Значения в oldObject
являются традиционными (т. Е. функции, не являющиеся стрелками), переменные и объекты.
newObject
нуждается в каждой паре ключ-значение в oldObject
, воспроизведенной в ней, но каждая скопированная функция должна thing
привязываться к переменной this
в это.
Этот код работает, но, возможно, неэффективен:
Object.keys(oldObject).forEach(function (key) {
if (typeof oldObject[key] === 'function') {
newObject[key] = oldObject[key].bind(thing);
} else {
newObject[key] = oldObject[key];
}
});
Есть ли лучший / более быстрый способ сделать это?