Копирование содержимого одного объекта в другое, включая функции, требующие bind () - PullRequest
0 голосов
/ 27 марта 2020

Я копирую все пары ключ-значение из 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];
    }
});

Есть ли лучший / более быстрый способ сделать это?

...